XPathはXMLパス言語であり、XMLドキュメントの特定の部分を決定するために使用される言語です。 XPathはXMLのようなツリー構造に基づいており、データ構造ツリーにノードを見つける機能を提供します。最初は、XPathの当初の意図は、XpointerとXSLの間の一般的な構文モデルとして使用することでした。しかし、Xpathは、開発者によって小さなクエリ言語として迅速に採用されました。
xpathtest.java
コードコピーは次のとおりです。
パッケージcom.hongyuan.test;
java.io.fileをインポートします。
java.io.ioexceptionをインポートします。
javax.xml.parsers.documentbuilderをインポートします。
javax.xml.parsers.documentbuilderfactoryをインポートします。
javax.xml.parsers.parserconfigurationexceptionをインポートします。
javax.xml.xpath.xpathをインポートします。
javax.xml.xpath.xpathconstantsをインポートします。
javax.xml.xpath.xpathexpressionexceptionをインポートします。
javax.xml.xpath.xpathfactoryをインポートします。
Import org.w3c.dom.document;
Import org.w3c.dom.node;
Import org.w3c.dom.nodelist;
Import org.xml.sax.saxexception;
パブリッククラスXPathtest {
public static void main(string [] args)スローparserconfigurationexception、
saxexception、ioexception、xpathexpressionexception {
//ファイルを解析し、ドキュメントオブジェクトを生成します
documentbuilder builder = documentbuilderfactory.newinstance()
.NewDocumentBuilder();
document document = builder.parse(new file( "bookstore.xml"));
// xpathオブジェクトを生成します
xpath xpath = xpathfactory.newinstance()。newxpath();
//ノード値を取得します
string webtitle =(string)xpath.evaluate(
"/bookstore/book [@category = 'web']/title/text()"、document、
xpathconstants.string);
System.out.println(webtitle);
System.out.println( "============================================== ============================================== =========================================================== ========================================================
//ノード属性値を取得します
string webtitlelang =(string)xpath.evaluate(
"/bookstore/book [@category = 'web']/title/@lang"、document、
xpathconstants.string);
System.out.println(webtitlelang);
System.out.println( "============================================== ============================================== =========================================================== ========================================================
//ノードオブジェクトを取得します
node bookweb =(node)xpath.evaluate(
"/bookstore/book [@category = 'web']"、document、
xpathconstants.node);
System.out.println(bookweb.getNodename());
System.out.println( "============================================== ============================================== =========================================================== ========================================================
//ノードコレクションを取得します
nodeList books =(nodelist)xpath.evaluate( "/bookstore/book"、document、
xpathconstants.nodeset);
for(int i = 0; i <books.getLength(); i ++){
node book = books.item(i);
system.out.println(xpath.evaluate( "@category"、book、
xpathconstants.string));
}
System.out.println( "============================================== ============================================== =========================================================== ========================================================
}
}
bookstore.xml
コードコピーは次のとおりです。
<?xmlバージョン= "1.0" encoding = "utf-8"?>
<bookstore>
<book category = "cooking">
<title lang = "en">毎日のイタリア語</title>
<著者giada de laurentiis </著者>
<年> 2005年</year>
<価格> 30.00 </price>
</book>
<book category = "children">
<title lang = "en">ハリー・ポッター</title>
<著者> J K.ローリング</著者>
<年> 2005年</year>
<価格> 29.99 </rish>
</book>
<book category = "web">
<title lang = "en">学習xml </title>
<著者>エリックT.レイ</著者>
<年> 2003年</year>
<価格> 39.95 </rice>
</book>
</bookstore>
ランニング効果