C# 用 XPath 搜索 XML
XPath是XML文檔的查詢語言,就像SQL是關(guān)系數(shù)據(jù)庫的查詢語言一樣。它由表21-7中的兩個方法使用,以免遍歷XML文檔的整個樹。但是需要花一定的時間才能熟悉它,因為其語法與SQL或C#完全不同。
為正確使用XPath,下面要使用XML文件Elements.xml。該文檔包含元素周期表中的部分化學元素。這個XML文件的部分內(nèi)容列在稍后的“選擇節(jié)點”示例中,其完整內(nèi)容可以在本書網(wǎng)站的本章下載代碼Elements.xmi中找到。
下表列出了 XPath執(zhí)行的最常見操作。如果未特別說明,XPath查詢示例就根據(jù)它操作的節(jié)點來選擇。在必須有一個節(jié)點名稱的地方,可以假定當前節(jié)點是XML文檔中節(jié)點。
目 的 | XPath查詢示例 |
選擇當前節(jié)點 | . |
選擇當前節(jié)點的父節(jié)點 | .. |
選擇當前節(jié)點的所有子節(jié)點 | * |
選擇具有特定名稱的所有子節(jié)點,這里是title | Title |
選擇當前節(jié)點的一個特性 | @Type |
選擇當前節(jié)點的所有特性 | @* |
按照索引選擇一個子節(jié)點,這里是第二個元素節(jié)點 | element[2] |
選擇當前節(jié)點的所有文本節(jié)點 | text() |
選擇當前節(jié)點的一個或多個孫子節(jié)點 | element/text() |
在文檔中選擇具有特定名稱的所有節(jié)點,在這里是所有的mass節(jié)點 | //mass |
在文檔中選擇具有特定名稱和特定父節(jié)點名稱的所有節(jié)點,在這里父節(jié)點名稱是element,節(jié)點名稱是name | //clement/name |
選擇值滿足條件的節(jié)點,這里選擇元素名為Hydrogen的元素 | //element[name='Hydrogen'] |
選擇特性值滿足條件的節(jié)點,在此.Type特性的值迪Noble Gas | //element[@Type=*Noble Gas'] |
點擊加載更多評論>>