Sample.java
import java.io.FileInputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
public class Sample {
public static void main(String[] args) throws Exception {
Document document =
DocumentBuilderFactory
.newInstance()
.newDocumentBuilder()
.parse(new FileInputStream("books.xml"));
XPathExpression xpath =
XPathFactory
.newInstance()
.newXPath()
.compile("//book[@year='2000']/title/text()");
Node node = (Node)xpath.evaluate(document, XPathConstants.NODE);
if (null != node)
System.out.println(node.getNodeValue());
else
System.out.println("not found");
}
}
books.xml
<?xml version="1.0" encoding="utf-8"?>
<inventory>
<book year="2000">
<title>Snow Crash</title>
<author>Neal Stephenson</author>
<publisher>Spectra</publisher>
<isbn>0553380958</isbn>
<price>14.95</price>
</book>
<book year="2005">
<title>Burning Tower</title>
<author>Larry Niven</author>
<author>Jerry Pournelle</author>
<publisher>Pocket</publisher>
<isbn>0743416910</isbn>
<price>5.99</price>
</book>
</inventory>
そもそも、AndroidでXMLしたくて調べたのだけれど、
XPathはAPI Level 8 (Android 2.2) でプラットフォームに取り込まれた。
最近ターゲットにしているAPI Level 4 (Android 1.6) では標準ではなかった。
参考: Java XPath API

0 件のコメント:
コメントを投稿