簡體   English   中英

從Xmldocument獲取多個

[英]Get multiple from Xmldocument

我查詢並從另一個來源獲取此信息

<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>

我試圖從這種XML中提取所有的nodeID,但我無法將它們全部放入數組中。

每當我嘗試通過時,我只會獲得第一個NodeID

var nodeID = result.XPathSelectElement("//*[local-name()='NodeID']").Value; is what works for the first nodeid

關於如何將所有這些作為數組的任何建議? 多個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);
}

產量:

823
825
826
839
935

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM