Mine是一個關於XML解析實踐的常見問題。用C#解析XML,XPath
假設我們有一個XML文件,我們使用XPath從那個文件的某個節點:
XMLNode node1=XMLDoc.SelectSingleNode("/SomeNode/SomeOtherNode");
現在N包含SomeOtherNode的數據。直覺上,我期望下面的代碼行:
XMLNode node2=XMLDoc.SelectSingleNode("/Child");
填充節點2與節點1的那些孩子們被命名爲「孩子」。但遺憾的是,這種方式並不奏效。 XPath搜索從文檔的根目錄開始,而不是從它被調用的XMLNode對象開始。有沒有什麼辦法讓它以「直觀」的方式工作?這對於遞歸或面向對象的解析方法來說是很方便的。
我試過使用XMLPathNavigator對象,但它的工作方式相同。看起來我可以將XMLDocumentFragment的內部文本設置爲給定節點的內部文本,但這似乎是數據的低效重複。
任何想法?
如果您使用C#3或更高版本,請考慮使用LINQ to XML。請參閱http://msdn.microsoft.com/en-us/library/bb387098.aspx – TrueWill 2009-11-26 03:07:03