[英]How to feed the correct XML namespaces to the manager before using XPATH queries
[英]How to get all namespaces of xml document for correct XPath evaluating?
我嘗試評估簡單的 xpath
"//pr:Name"
對於這個 xml
<?xml version="1.0" encoding="utf-8"?>
<pr:Products xmlns:pr="http://www.example.com/">
<pr:Name>Coffee</pr:Name>
</pr:Products>
但是我在運行時得到了 xml 文件,即我無法使用 AddNamespace() 方法填充 XmlNamespaceManager(這就是評估失敗的原因)。 我試着做這個把戲
XDocument xdoc;
XmlReader reader;
using (var stream = new FileStream("test.xml", FileMode.Open))
{
reader = new XmlTextReader(stream);
xdoc = XDocument.Load(reader);
}
var nsManager = new XmlNamespaceManager(reader.NameTable);
var xpath = "//pr:Name";
var xvalue = xdoc.XPathEvaluate(xpath, nsManager);
但這對我沒有幫助。 您知道如何為 XPath 解析命名空間或以其他方式評估 XPath 嗎? 謝謝!
如果你在編譯時不知道命名空間,你可能會使用這個 XPath:
//*[local-name() = 'Name']
此 XPath 選擇所有Name
元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.