我正在尝试使用 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/