[英]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.