java中的xpath,讀取xml文檔。

1,入門html

XPath即爲XML路徑語言(XML Path Language),它是一種用來肯定XML文檔中某部分位置的語言。java

XPath基於XML的樹狀結構,提供在數據結構樹中找尋節點的能力。起初 XPath 的提出的初衷是將其做爲一個通用的、node

介於XPointer與XSL間的語法模型。可是 XPath 很快的被開發者採用來看成小型查詢語言。express

2,瞭解數據結構

若是要定位xml文檔中的某一節點,並獲取相應的信息。那麼能夠經過遍歷dom樹的全部節點進行查找。這樣作顯然比較麻煩。dom

因而有了XPat語言來訪問樹的節點比較容易。ui

如:lua

<config>
.....
 <user>
      <name>JIMI</name>
      <gental>male</gental>
 </user>
.....
</config>


 

下列的操做:code

1,獲得文檔的節點。xml

2,枚舉它的子元素。

3,定位user元素。

4,獲取user元素的第一個元素,即name元素

5,獲取name元素的第一元素,即name標籤裏的內容。(Text節點)

6,獲取Text節點的數據。

XPath能夠用來描述XML文檔中的一組節點。如:

/gridbag/row

表示根元素gridbag的子元素中全部的row元素。能夠用[]操做符來選擇特定的元素。

/gridbag/row[1]

表示row全部元素的第一元素。

使用@操做符能夠獲得元素的屬性。(<user id="1"></user>:其中的id就是user元素的屬性)

/gridbag/row[1]/cell[1]/@author

上面的XPath描述了第一行第一個單元格的author元素。

XPath表達式:/gridbag/row/cell/@author

描述了做爲根元素gridbag的子元素行元素中全部的單元格的author屬性節點。

3,java中的XPath

java使用XPath對象來操做xml文檔

 XPathFactory xpfactory = XPathFactory.newInstance();
    XPath  path = xpfactory.newXPath();

String name = path.evaluate("/config/user/name",(Document)doc);//計算表達獲取相應的name

還有如下的操做

Nodelist nodes = (Nodelist) path.evaluate("/gridbag/row",doc,XPathContants.NODESET);//返回的是一組節點。

Node node = (Node) path.evaluate("/gridbag/row[1]",doc,XPathContants.NODE);//返回一個節點。

int count = ((Number) path.evaluate("count(/gridbag/row)",doc,XPathContants.NUMBER)).intValue();//返回節點個數。

若是想要從某個節點,或者節點列計算獲得一個節點能夠經過:

reusult = path.evaluate(expression,node);來獲取。

--------------------------------------下面是doc變量的建立過程。-------------

  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     DocumentBuilder    builder = factory.newDocumentBuilder();

 File f = new File(); Document    doc = builder.parse(f);  

相關文章
相關標籤/搜索