PROWAREtech

articles » current » dot-net » tutorial » linq » page-7

.NET: Language Integrated Query (LINQ) - Page 7

LINQ to XML.

LINQ to XML

This simple example downloads an XML document from the Internet, parses it using LINQ, and displays its data.

using System;
using System.Linq;
using System.Xml.Linq;

namespace LinqExample
{
	class Program
	{
		static void Main()
		{
			// download XML document from the Internet
			XDocument xdoc = XDocument.Load("http://www.prowaretech.com/xml"); // NOTE: this path is offline, but the XML source is below (code sample #2)

			var query = from x in xdoc.Descendants("author") // not "authors"
						select new
						{
							SSN = x.Attribute("ssn").Value,
							LastName = x.Element("lastname").Value,
							FirstName = x.Element("firstname").Value,
							Phone = x.Element("phone").Value
						};

			foreach (var record in query)
			{
				Console.WriteLine(record.SSN + ": " +
									record.LastName + ", " +
									record.FirstName + " - " +
									record.Phone);
			}
		}
	}
}
172-32-1176: White, Johnson - 408 496-7223
213-46-8915: Green, Marjorie - 415 986-7020
238-95-7766: Carson, Cheryl - 415 548-7723
267-41-2394: O'Leary, Michael - 408 286-2428
274-80-9391: Straight, Dean - 415 834-2919
341-22-1782: Smith, Meander - 913 843-0462
409-56-7008: Bennet, Abraham - 415 658-9932
427-17-2319: Dull, Ann - 415 836-7128
472-27-2349: Gringlesby, Burt - 707 938-6445
486-29-1786: Locksley, Charlene - 415 585-4620
527-72-3246: Greene, Morningstar - 615 297-2723
648-92-1872: Blotchet-Halls, Reginald - 503 745-6402
672-71-3249: Yokomoto, Akiko - 415 935-4228
712-45-1867: del Castillo, Innes - 615 996-8275
722-51-5454: DeFrance, Michel - 219 547-9982
724-08-9931: Stringer, Dirk - 415 843-2991
724-80-9391: MacFeather, Stearns - 415 354-7128
756-30-7391: Karsen, Livia - 415 534-9219
807-91-6654: Panteley, Sylvia - 301 946-8853
846-92-7186: Hunter, Sheryl - 415 836-7128
893-72-1158: McBadden, Heather - 707 448-4982
899-46-2035: Ringer, Anne - 801 826-0752
998-72-3567: Ringer, Albert - 801 826-0752

The XML source:

<?xml version="1.0" encoding="utf-8"?>
<authors>
	<author
	ssn="172-32-1176">
	<phone>408 496-7223</phone>
	<lastname>White</lastname>
	<firstname>Johnson</firstname>
	</author>
	<author
	ssn="213-46-8915">
	<phone>415 986-7020</phone>
	<lastname>Green</lastname>
	<firstname>Marjorie</firstname>
	</author>
	<author
	ssn="238-95-7766">
	<phone>415 548-7723</phone>
	<lastname>Carson</lastname>
	<firstname>Cheryl</firstname>
	</author>
	<author
	ssn="267-41-2394">
	<phone>408 286-2428</phone>
	<lastname>O'Leary</lastname>
	<firstname>Michael</firstname>
	</author>
	<author
	ssn="274-80-9391">
	<phone>415 834-2919</phone>
	<lastname>Straight</lastname>
	<firstname>Dean</firstname>
	</author>
	<author
	ssn="341-22-1782">
	<phone>913 843-0462</phone>
	<lastname>Smith</lastname>
	<firstname>Meander</firstname>
	</author>
	<author
	ssn="409-56-7008">
	<phone>415 658-9932</phone>
	<lastname>Bennet</lastname>
	<firstname>Abraham</firstname>
	</author>
	<author
	ssn="427-17-2319">
	<phone>415 836-7128</phone>
	<lastname>Dull</lastname>
	<firstname>Ann</firstname>
	</author>
	<author
	ssn="472-27-2349">
	<phone>707 938-6445</phone>
	<lastname>Gringlesby</lastname>
	<firstname>Burt</firstname>
	</author>
	<author
	ssn="486-29-1786">
	<phone>415 585-4620</phone>
	<lastname>Locksley</lastname>
	<firstname>Charlene</firstname>
	</author>
	<author
	ssn="527-72-3246">
	<phone>615 297-2723</phone>
	<lastname>Greene</lastname>
	<firstname>Morningstar</firstname>
	</author>
	<author
	ssn="648-92-1872">
	<phone>503 745-6402</phone>
	<lastname>Blotchet-Halls</lastname>
	<firstname>Reginald</firstname>
	</author>
	<author
	ssn="672-71-3249">
	<phone>415 935-4228</phone>
	<lastname>Yokomoto</lastname>
	<firstname>Akiko</firstname>
	</author>
	<author
	ssn="712-45-1867">
	<phone>615 996-8275</phone>
	<lastname>del Castillo</lastname>
	<firstname>Innes</firstname>
	</author>
	<author
	ssn="722-51-5454">
	<phone>219 547-9982</phone>
	<lastname>DeFrance</lastname>
	<firstname>Michel</firstname>
	</author>
	<author
	ssn="724-08-9931">
	<phone>415 843-2991</phone>
	<lastname>Stringer</lastname>
	<firstname>Dirk</firstname>
	</author>
	<author
	ssn="724-80-9391">
	<phone>415 354-7128</phone>
	<lastname>MacFeather</lastname>
	<firstname>Stearns</firstname>
	</author>
	<author
	ssn="756-30-7391">
	<phone>415 534-9219</phone>
	<lastname>Karsen</lastname>
	<firstname>Livia</firstname>
	</author>
	<author
	ssn="807-91-6654">
	<phone>301 946-8853</phone>
	<lastname>Panteley</lastname>
	<firstname>Sylvia</firstname>
	</author>
	<author
	ssn="846-92-7186">
	<phone>415 836-7128</phone>
	<lastname>Hunter</lastname>
	<firstname>Sheryl</firstname>
	</author>
	<author
	ssn="893-72-1158">
	<phone>707 448-4982</phone>
	<lastname>McBadden</lastname>
	<firstname>Heather</firstname>
	</author>
	<author
	ssn="899-46-2035">
	<phone>801 826-0752</phone>
	<lastname>Ringer</lastname>
	<firstname>Anne</firstname>
	</author>
	<author
	ssn="998-72-3567">
	<phone>801 826-0752</phone>
	<lastname>Ringer</lastname>
	<firstname>Albert</firstname>
	</author>
</authors>
<<<[Page 7 of 7]>>>

PROWAREtech

Hello there! How can I help you today?
Ask any question

PROWAREtech

This site uses cookies. Cookies are simple text files stored on the user's computer. They are used for adding features and security to this site. Read the privacy policy.
ACCEPT REJECT