获取xml节点值
Posted
技术标签:
【中文标题】获取xml节点值【英文标题】:get xml node value 【发布时间】:2013-03-19 01:10:45 【问题描述】:下面的 xml 有一个属性 Itemcount(<rs:data ItemCount="4">
) 。我如何通过代码获得它的价值。
xmldocument.childnodes.count 没有给我正确的计数
我需要获取子节点的计数,即 Itemcount
<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<rs:data ItemCount="4">
<z:row ows_Attachments="0" ows_UniqueId="1;#DF5B35E4-D3EB-4E16-9D6F-23F368CDE05C"/>
<z:row ows_Attachments="0" ows_UniqueId="2;#83803774-A2F6-4265-AD73-E8600ECFCE04"/>
<z:row ows_Attachments="0" ows_UniqueId="3;#8B1C0737-EAA2-4313-BEC3-A5A907341856"/>
<z:row ows_Attachments="0" ows_UniqueId="5;#65CA20E9-E427-412C-A98B-367DDEBE8911"/>
</rs:data>
</listitems>
【问题讨论】:
childnodes.count
会给你子节点的数量,这就是它不起作用的原因
【参考方案1】:
//xmlStr contains your xml as a string
var xml = XDocument.Parse(xmlStr);
XNamespace rs = "urn:schemas-microsoft-com:rowset";
string[] result = xml.Descendants(rs + "data")
.Select(node => node.Attribute("ItemCount").Value)
.ToArray();
Console.WriteLine(string.Join(Environment.NewLine, result));
打印:
4
【讨论】:
以上是关于获取xml节点值的主要内容,如果未能解决你的问题,请参考以下文章