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