gpt4 book ai didi

.net - 如何使用 XDocument.XPathEvaluate 处理空命名空间?

转载 作者:行者123 更新时间:2023-12-03 16:00:06 24 4
gpt4 key购买 nike

我正在尝试使用 XDocument 和 XPathEvaluate 从 woot.com 提要中获取值。我可以很好地处理其他 namespace ,但这个示例给我带来了问题。

     <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=' --!>

所以我试试这个:

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

val 始终为空。我正在使用 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);

关于.net - 如何使用 XDocument.XPathEvaluate 处理空命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3056356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com