XML和Xpath定位小結


1.1 XML簡介
典型的XML文檔是由XML文檔首部和XML文檔主體構成的。
XML文檔首部:聲明包含<? ?>標簽之中。例如:
<?xml version="1.0" encoding="UTF-8" ?>
XML文檔主體,文檔中的數據是通過樹形結構進行組織的,一個標簽引出一個元素節點,元素開始標簽中可以指定屬性節點,也可以包含子元素和文本內容,也可以什么也沒有而成為一個空元素。
1、一個格式正確的XML文檔必須由一個且僅由一個頂節元素組成。將沒有根元素的XML文檔稱為XML片段。
2、正確處理特殊字符。使用CDATA段:
<?xml versoin="1.0" encoding="UTF-8" ?>
<root>
    <compare><![CDATA[ %$#<> ]]></compare>
</root>


1.2 Xpath語言
Xpath將xml的文檔結構視為一個樹形結構,元素、屬性、文本、注釋以及處理指令都是這個樹形結構上的節點,對於xml文檔中元素、屬性、文本、注釋以及處理指令的訪問實際上是按順序遍歷這棵樹,使用Xpath的路徑表示法,可以定位到XML文檔中的一個節點或者節點集合。
在Xpath中,可以使用相關標識來定位元素以及其屬性,這些標識符關鍵字主要有:child、self、parent、descendant、attribute等。
child為默認標識符,self表示當前節點,parent表示上一級節點。
descendant表示當前子孫節點,attribute表示當前節點的屬性。
絕對路徑的Xpath表示
絕對路徑是從根節點到目標節點所經歷的路徑。
1、元素節點的訪問:
/child::Config/child::Department
可以簡化:
/Config/Department
2、屬性節點的訪問
/child::Config/child::Department/attribute::id
可以簡化:
/Config/Department/@id
3、文本節點訪問
可以直接使用“//”來表示,例如“.//”表示當前路徑下的文本內容。
4、子孫節點的訪問
可以通過元素節點,但是離根元素太長,可以使用子孫節點表示:
/child::class/descendant::Name
可以簡化:
/class//Name
5、任意節點的訪問
/child::Config/child::Department/child::*
可以簡寫:
/Config/Department/*
相對路徑的Xpath表示:
parent::Director/@id 簡寫 ../@id
self::Director/Name 簡寫 ./Name

1.3 Xpath的元素定位條件
在xml中,也可以根據篩選條件返回指定節點集
1、根據屬性值篩選節點集
可以使用下面的表示來定位class元素下所有的Director子元素:
/class/Director
但是需要定位具有屬性id的Director時:
/class/Director[@id]
當需要具體確定屬性數值時:
/class/Director[@id='1001']
2、根據或表達式篩選節點集
當需要對多個具有不同名稱節點進行處理,可以使用|表達式,例如需要定位Director下的Name或者Age,二者任意一個度可以:
/class/Director/Name|Age

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM