Ali*_*ned 2 .net xpath linq-to-xml xml-namespaces
我正在尝试使用XDocument和XPathEvaluate从woot.com提要中获取值.我正在处理其他名称空间,但这个例子给了我一些问题.
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<category text="Comedy" xmlns="http://www.itunes.com/dtds/podcast-1.0.dtd">
</category>
<!-- this is a problem node, notice 'xmlns=' --!>
Run Code Online (Sandbox Code Playgroud)
所以我试试这个:
XmlNamespaceManager man = new XmlNamespaceManager(nt);
man.AddNamespace("ns", "http://www.w3.org/2000/xmlns/");
// i've also tried man.AddNamespace("ns", string.Empty);
xDocument.Namespace = man;
var val = xDocument.XPathEvaluate("/rss/channel/ns:category/@text", xDocument.Namespace);
Run Code Online (Sandbox Code Playgroud)
val始终为null.我正在使用ns:来自VS 2010 XPath Navigator插件的建议.有关如何处理这个问题的任何想法?
该元素category位于命名空间中http://www.itunes.com/dtds/podcast-1.0.dtd.它不是一个空命名空间.它只是没有在输入XML中给出前缀.
man.AddNamespace("ns", "http://www.itunes.com/dtds/podcast-1.0.dtd");
...
xDocument.XPathEvaluate("/rss/channel/ns:category/@text", xDocument.Namespace);
Run Code Online (Sandbox Code Playgroud)