<?xml version="1.0" encoding="utf-8"?>
<Report p1:schemaLocation="TemplateXXX http://localhost?language=en" Name="TemplateXXX" xmlns:p1="http://www.w3.org/2001/XMLSchema-instance" xmlns="TemplateXXX">
<HEADER attr1="one" attr2="two" />
<Table filename="12345.pdf">
<left>
<details>
<item/>
<item/>
</details>
</left>
<right>
<details>
<item/>
<item/>
</details>
</right>
</Table>
</Report>
我想查詢元素和XML文檔,其中一個命名空間在XML中的屬性時遇到了一個奇怪的問題。如何查詢使用XPath的XML元素與現有的命名空間
當我嘗試查詢文件中出現以下XPath查詢頭元素我consistantly得到空結果
XDocument root = XDocument.Load(filePath);
var element = root.XPathSelectElement("/Report/HEADER");
這總是返回null但是那一刻我從文件中刪除命名空間中的查詢返回即將到來的元素。
什麼是我越來越錯了,因爲我得到一些挫敗感。
編輯:更新XML來有效的XML
'/ HEADER'不應該反正工作肯定,因爲它的期待* *根元素當它實際上是報告時,作爲標題。你*有*使用XPath嗎?根據我的經驗,使用LINQ to XML直接查詢更具可讀性 - 特別是在涉及名稱空間的情況下。 –