gpt4 book ai didi

C# 和 XPath - 如何查询

转载 作者:行者123 更新时间:2023-11-30 13:52:55 27 4
gpt4 key购买 nike

我有一个 XML 文件,它具有以下结构:

<mediawiki ...>
<siteinfo>...</siteinfo>
<page>
<title>The Title</title>
<id>42</id>
...
</page>
... more page items ...
</mediawiki>

我对 XPath-Query 有所了解并编写了以下代码:

_xmlArticlesDocument = new XmlDocument();
_xmlArticlesDocument.Load(xmlArticlesFileName);

现在我想掌握具有给定 id-Subelement 的页面元素。所以我写道:

XmlNode node = _xmlArticlesDocument.DocumentElement.SelectSingleNode
("//mediawiki/page[id=" + id.ToString() + "]");

但节点始终为空。我尝试了几个查询,包括“page/id”、“page”、“/page”、“//page”以获取任何内容,但节点始终为空。我通过快速检查 _xmlArticlesDocument 变量进行了检查,它包含具有预期结构的正确 XML 文件。

在我看来,我错过了一些非常基本的东西,但不知道是什么。也许这里有人有想法?

提前致谢,弗兰克

最佳答案

根据您目前向我们展示的内容,查询看起来是正确的。但是我怀疑 mediawiki 元素上的“...”后面有一个 xmlns="..."属性,对吗?

我怀疑这就是让您感到困惑的原因。您将需要这样的代码:-

 XmlNamespaceManager nsmgr = new XmlNamespaceManager(_xmlArticlesDocument.NameTable);
nsmgr.AddNamespace("a", "the-namespace-in-them-xmlns-attribute");
XmlNode page = _xmlArticlesDocument.SelectSingleNode(String.Format("//a:page[id={0}]", id), nsmgr);

关于C# 和 XPath - 如何查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194675/

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