Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xmldocument获取多个_C#_Xpath_Xml Parsing - Fatal编程技术网

C# 从Xmldocument获取多个

C# 从Xmldocument获取多个,c#,xpath,xml-parsing,C#,Xpath,Xml Parsing,我从另一个来源查询并获取此信息 <queryResult xmlns="http://apiblah"> <template> <entity name="Nodes" type="apiblah" dynamic="False"> <property name="NodeID" type="Int32" /> </entity> </template> <data> <Nodes> <Nod

我从另一个来源查询并获取此信息

<queryResult xmlns="http://apiblah">
<template>
<entity name="Nodes" type="apiblah" dynamic="False">
<property name="NodeID" type="Int32" /> 
</entity>
</template>
<data>
<Nodes>
<NodeID>823</NodeID> 
</Nodes>
<Nodes>
<NodeID>825</NodeID> 
</Nodes>
<Nodes>
<NodeID>826</NodeID> 
</Nodes>
<Nodes>
<NodeID>839</NodeID> 
</Nodes>
<Nodes>
<NodeID>935</NodeID> 
</Nodes>
</data>
</queryResult>
关于如何将它们作为一个数组获取,有什么建议吗?
多个NodeID标记使我的代码延迟

如果您能够切换到XDocument(System.Linq.Xml),那么您可以执行以下操作:

    string xml = @"<queryResult xmlns=""http://apiblah"">
<template>
<entity name=""Nodes"" type=""apiblah"" dynamic=""False"">
<property name=""NodeID"" type=""Int32"" /> 
</entity>
</template>
<data>
<Nodes>
<NodeID>823</NodeID> 
</Nodes>
<Nodes>
<NodeID>825</NodeID> 
</Nodes>
<Nodes>
<NodeID>826</NodeID> 
</Nodes>
<Nodes>
<NodeID>839</NodeID> 
</Nodes>
<Nodes>
<NodeID>935</NodeID> 
</Nodes>
</data>
</queryResult>";

XDocument doc = XDocument.Parse(xml);
XNamespace ns = "http://apiblah";
var nodeids = doc.Descendants().Elements(ns + "NodeID");
foreach (var element in nodeids)
{
    Console.WriteLine(element.Value);
}

只能从返回倍数的XPath查询中获取XML元素。因此,一旦您得到一个节点列表,您就必须遍历该列表以提取值并将其放入数组中。
    string xml = @"<queryResult xmlns=""http://apiblah"">
<template>
<entity name=""Nodes"" type=""apiblah"" dynamic=""False"">
<property name=""NodeID"" type=""Int32"" /> 
</entity>
</template>
<data>
<Nodes>
<NodeID>823</NodeID> 
</Nodes>
<Nodes>
<NodeID>825</NodeID> 
</Nodes>
<Nodes>
<NodeID>826</NodeID> 
</Nodes>
<Nodes>
<NodeID>839</NodeID> 
</Nodes>
<Nodes>
<NodeID>935</NodeID> 
</Nodes>
</data>
</queryResult>";

XDocument doc = XDocument.Parse(xml);
XNamespace ns = "http://apiblah";
var nodeids = doc.Descendants().Elements(ns + "NodeID");
foreach (var element in nodeids)
{
    Console.WriteLine(element.Value);
}
823
825
826
839
935