HTMLのCSSセレクターに精通している場合は、 JsoupがXMLもサポートしていることを知っておくとよいでしょう。
更新:OK、それは明らかに非常に物議を醸す答えに反対票を与えられました。ただし、ノード値を選択するだけの場合は、Xpathよりも簡単で冗長性が低くなる可能性があります。JsoupAPIはつまり非常に洗練されています。もう少し具体的な例を挙げましょう。次のようなXMLファイルがあると仮定します。
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1">
<name>John Doe</name>
<age>30</age>
<address>
<street>Main street 1</street>
<city>Los Angeles</city>
</address>
</person>
<person id="2">
<name>Jane Doe</name>
<age>40</age>
<address>
<street>Park Avenue 1</street>
<city>New York</city>
</address>
</person>
</persons>
次に、次のようにトラバースできます。
Document document = Jsoup.parse(new File("/persons.xml"), "UTF-8");
Element person2 = document.select("person[id=2]").first();
System.out.println(person2.select("name").text());
Elements streets = document.select("street");
for (Element street : streets) {
System.out.println(street.text());
}
どの出力
ジェーン・ドウ
メインストリート1
パークアベニュー1
アップデート2:2012年3月にリリースされたJsoup 1.6.2以降、XML解析はJsoupAPIによって正式にサポートされています。