Linq to XML选择不同的值

时间:2011-11-23 14:35:40

标签: c# xml linq sharepoint-2010 linq-to-xml

我正在使用sharePoint Lists webservice,为了在搜索页面中加载下拉列表,我需要从XML中提取所有“ows_Country”名称,在格式为:

的XMLNode中进行回放
<rs:data ItemCount="1" xmlns:rs="urn:schemas-microsoft-com:rowset">
   <z:row ows_Title="Nike"    ows_ID="1" ows_Country="Spain"  xmlns:z="#RowsetSchema" /> 
   <z:row ows_Title="Addidas" ows_ID="4" ows_Country="Brazil" xmlns:z="#RowsetSchema" />
   <z:row ows_Title="Puma"    ows_ID="5" ows_Country="Spain"  xmlns:z="#RowsetSchema" />
</rs:data>

我需要使用LINQ从XMLNode获取不同的“ows_Country”,请帮助可能是我第一次使用LINQ以及XML。

1 个答案:

答案 0 :(得分:5)

XNamespace rs = "urn:schemas-microsoft-com:rowset";
XNamespace z = "#RowsetSchema";

XDocument doc = XDocument.Load(...);

var result = doc.Element(rs + "data")
                .Elements(z + "row")
                .Select(e => (string)e.Attribute("ows_Country"))
                .Distinct()
                .ToList();