Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

2010年10月7日 星期四

How to: Filter on an Attribute (XPath-LINQ to XML)

關於LINQ to XML 相關語法
How to: Filter on an Attribute (XPath-LINQ to XML)

XDocument po = XDocument.Load("PurchaseOrders.xml");
// LINQ to XML query
IEnumerable<xelement> list1 =
from el in po.Descendants("Address")
where (string)el.Attribute("Type") == "Shipping"
select el;
// XPath expression
IEnumerable<xelement> list2 = po.XPathSelectElements(".//Address[@Type='Shipping']");
if (list1.Count() == list2.Count() &amp;&amp;
list1.Intersect(list2).Count() == list1.Count())
Console.WriteLine("Results are identical");
else
Console.WriteLine("Results differ");
foreach (XElement el in list1)
Console.WriteLine(el);



http://msdn.microsoft.com/en-us/library/bb675183.aspx
Results are identical


<address type="Shipping">
<name>Ellen Adams</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>10999</zip>
<country>USA</country></address>
<address type="Shipping">
<name>Cristian Osorio</name>
<street>456 Main Street</street>
<city>Buffalo</city>
<state>NY</state>
<zip>98112</zip>
<country>USA</country></address>
<address type="Shipping">
<name>Jessica Arnold</name>
<street>4055 Madison Ave</street>
<city>Seattle</city>
<state>WA</state>
<zip>98112</zip>
<country>USA</country></address>

沒有留言:

張貼留言