[英]FInd element by ID then get content in XML document
我有一個XML文檔
<?xml version="1.0" encoding="utf-8" ?>
<data>
<string id="test-text">Some sample text from XML</string>
<string id="test-text2">Some more sample text</string>
</data>
我已將其加載到XmlDocument對象中,並且嘗試使用id獲取文本。 我可能在這里遺漏了一些非常明顯的東西,但這就是我目前正在嘗試這樣做的方式。
XmlElement elem = doc.GetElementById("test-text");
return elem.Value;
您可能需要elem.InnerText
而不是elem.Value.
從類文檔中, InnerText
獲取或設置節點及其所有子級的串聯值 ,而Value
是從XmlNode
繼承的屬性,對屬性節點,文本節點等很有用,但實際上不適用於XmlElement
等節點。 在根據您的文檔構建的DOM樹中,要查找的XmlElement將包含一個Text
節點,其Value
是您嘗試檢索的字符串。
GetElementById僅適用於通過DTD定義的ID屬性(不太可能出現這種情況,對於您的示例絕對不適用):
...該產品版本僅支持DTD中定義的版本。 除非在DTD中定義,否則名稱為“ ID”的屬性的類型不是ID。 未知屬性是否為ID類型的實現應返回null。
您需要帶有屬性檢查的基本XPath:
var d = new XmlDocument();
d.LoadXml(@"<data>
<string id='test-text'>Some sample text from XML</string>
<string id='test-text2'>Some more sample text</string>
</data>");
var elem = d.SelectSingleNode("//*[@id='test-text']");
Console.WriteLine(elem.InnerText);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.