JAvaのxpathで、xmlドキュメントを読み込みます.

2145 ワード

1、入門
XPathはXMLパス言語(XML Path Language)であり、XMLドキュメントの一部の位置を決定する言語である.
XPathはXMLのツリー構造に基づいて,データ構造ツリーでノードを探す能力を提供する.最初はXPathの提案の初志はそれを共通のものとして、
XPointerとXSLの間にある構文モデル.しかしXPathはすぐに開発者に小型クエリー言語として採用された.
2、了解
xmlドキュメントのノードを特定し、対応する情報を取得する場合.ではdomツリーのすべてのノードを巡回することで検索できます.このようにするのは明らかに面倒だ.
そこでXPat言語で木のノードにアクセスするのが容易になる.
次のようになります.
<config>
.....
 <user>
      <name>JIMI</name>
      <gental>male</gental>
 </user>
.....
</config>

 
次の操作を行います.
1で、ドキュメントのノードを取得します.
2、そのサブ要素を列挙します.
3、user要素を配置します.
4,user要素の最初の要素、すなわちname要素を取得する
5,name要素の第1の要素,すなわちnameラベルの内容を取得する.(Textノード)
6,Textノードのデータを取得する.
XPathは、XMLドキュメント内のノードのセットを記述するために使用することができる.次のようになります.
/gridbag/row
ルート要素gridbagのサブ要素のすべてのrow要素を表します.[]オペレータを使用して、特定の要素を選択できます.
/gridbag/row[1]
rowのすべての要素を表す最初の要素.
@オペレータを使用すると、要素のプロパティが得られます.(: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);