C# XPathSelectElement 返回 null

标签 c# xpath

我正在尝试使用 System.Xml.XPath 命名空间的 XPathSelectElement 方法,但由于某种原因它总是返回 null,我不知道为什么。

代码如下:

TextReader stream = new StreamReader("config.ini");
XmlReader reader = XmlReader.Create(stream);
XElement xml = XElement.Load(reader);

XElement file = xml.XPathSelectElement("Config/File");

这是它试图读取的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<Config>
 <File>serp_feed.xml</File>
</Config>

我已经尝试了很多方法(添加命名空间表、更改 XPath 等)但没有任何效果!

有什么想法吗?

最佳答案

对于 XElement.Load,名为 xml 的变量是根元素,即您发布的 XML 示例的“Config”元素。如果您使用该元素上的路径 Config/File 作为上下文节点,您正在寻找一个名为“Config”的子元素,它具有后代“File”元素。 “Config”元素没有“Config”子元素,它只有一个“File”子元素。所以你需要 XPath File 或者你需要 XDocument xml = XDocument.Load("config.ini),那么你的路径就可以了。

关于C# XPathSelectElement 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194785/

相关文章:

xml - 由于 xmlns 导致的 XSL 转换问题

c# - 当我使用 Invoke 调用我想要使用的方法时,我无法再调用它?

c# - 如何使用 "if statement"wpf 禁用日期选择器

c# - Bing map 运行时错误 Windows 8.1

c# - 按后退按钮时显示警报

python - 如何通过 XPath 选择最后一个 p 元素之前的所有元素?

XPath 简单的条件语句?如果节点 X 存在,那么 Y 存在吗?

mysql - 根据另一个子标签的值获取子标签的值

c# - 如何强制我的 gRPC 客户端打开到服务器的多个连接?

xpath - 哪个更有效:嵌套谓词或选择父元素(通常遍历祖先)