XML

JAXP (Java API for XML Processing)

JAXPとは、Java用のXML APIです。

XMLパーサーの比較

特徴 StAX SAX DOM TrAX
APIの種類 Pull, streaming Push, streaming In memory tree XSLT Rule
使いやすさ × ×
XPath対応 × ×
CPUとメモリの使用効率 × ×
直接アクセス × ×
XMLの読み込み
XMLの書き込み ×
作成、読み込み、更新、削除 × × ×
Why StAX? (The Java™ Tutorials > Java API for XML Processing (JAXP) > Streaming API for XML)

StAX (Streaming API for XML)

SAX (Simple API for XML)

DOM (Document Object Model)

たとえば、

<?xml version="1.0" encoding="UTF-8"?>
<foo>TEST</foo>

というファイル (test.xml) があるとき、これをDOMで処理するには次のようにします。

File file = new File("test.xml");

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
    builder = factory.newDocumentBuilder();
    Document document = builder.parse(file);      // [#document: null]

    Element root = document.getDocumentElement(); // [foo: null]
    Node node = root.getFirstChild();             // [#text: TEST]

    System.out.println(node.getNodeValue());      // TEST

} catch (ParserConfigurationException e) {
    e.printStackTrace();
} catch (SAXException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

JAXB (Java Architecture for XML Binding)

JAX-WS (Java API for XML Web Services)