获取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节点值的主要内容,如果未能解决你的问题,请参考以下文章

获取xml节点值

为啥在解析 XML 时获取空节点值

获取 XML 节点的属性值

C# 获取 XML 节点值

javascript获取节点值

java如何读取xml节点元素值?