簡體   English   中英

C#XPathSelectElement返回null

[英]C# XPathSelectElement returns null

我試圖使用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) ,那么你的路徑就可以了。

嘗試

XElement file = xml.XPathSelectElement("File")

因為您使用的是XElement.Load而不是XDocument.Load所以root將是元素而不是文檔,因此不需要XPath表達式中的步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM