我有一個XML文件,它具有以下結構:C#和XPath - 如何查詢
<mediawiki ...>
<siteinfo>...</siteinfo>
<page>
<title>The Title</title>
<id>42</id>
...
</page>
... more page items ...
</mediawiki>
我紅了一下有關XPath查詢和寫了下面的代碼:
_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文件。
在我看來,我錯過了一些非常基本的東西,但不知道是什麼。也許這裏有人有一個想法?
由於提前, 弗蘭克
//應將查詢移動到文檔的開頭。 – AnthonyWJones 2009-07-28 14:59:38
我沒有建議使用// ...或者我不理解你的觀點? – 2009-07-28 15:01:34
不要忘記確保`id`不包含單引號,否則`SelectSingleNode()`將因XPath無效而失敗。 – Tomalak 2009-07-28 15:08:17