HelloXPathNodeset

■コード

package hello.javax.xml;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.xpath.XPath;

import javax.xml.xpath.XPathConstants;

import javax.xml.xpath.XPathExpression;

import javax.xml.xpath.XPathFactory;

public class HelloXpath {

public static void main(String[] args) throws Exception {

String xmlFile = "files/hello.javax.xml.xpath/HelloXPath.xml"; String xpathExpression = "/inventory/book/title"; XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); XPathExpression xpath0 = xpath.compile(xpathExpression); org.w3c.dom.Document doc = null; // XML 読み込みクラスの初期化 DocumentBuilderFactory domFactory = DocumentBuilderFactory .newInstance(); domFactory.setNamespaceAware(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); doc = builder.parse(xmlFile); NodeList paths = (NodeList) xpath0 .evaluate(doc, XPathConstants.NODESET); for (int m = 0; m < paths.getLength(); m++) { System.out.println(paths.item(m).getTextContent()); }

}

}

■用意するファイル

files/hello.javax.xml.xpath/HelloXpath.xml

<inventory>

<book id="1">

<title>Snow Crash</title>

<author>Neal Stephenson</author>

<publisher>Spectra</publisher>

<isbn>0553380958</isbn>

<price>14.95</price>

</book>

<book id="2">

<title>Burning Tower</title>

<author>Larry Niven</author>

<author>Jerry Pournelle</author>

<publisher>Pocket</publisher>

<isbn>0743416910</isbn>

<price>5.99</price>

</book>

<book id="3">

<title>Zodiac</title>

<author>Neal Stephenson</author>

<publisher>Spectra</publisher>

<isbn>0553573862</isbn>

<price>7.50</price>

</book>

</inventory>

■結果

Snow Crash

Burning Tower

Zodiac

tags

---

java xpath