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 件のコメント:
コメントを投稿