AndroidでXMLをparseする

ソフトウェア開発部のKです。
以前、帳票管理サーバのWeb APIをAndroidアプリで呼び出す方法をご紹介しましたが、今回はその続きとなります。

XMLをparseする

帳票管理サーバのWeb APIは、戻り値がXML形式です。
そのため、結果を取得した後、そのXMLをparseする必要があります。
例として、エイリアス一覧を取得するGetAliasNamesメソッドは、以下の形で戻り値が返ります。

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString>
  <string>string</string>
  <string>string</string>
</ArrayOfString>

Androidでは2.2からXPathが使用できるようになりました。
今回は、それを使ってparseします。

//sにGetAliasNamesの戻り値のXMLを入れておく
String s;

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbFactory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(s)));

XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();

NodeList nodes = (NodeList) xpath.evaluate("/ArrayOfString/string", doc, XPathConstants.NODESET);
for(int i = 0; i < nodes.getLength(); i++){
    Node node = nodes.item(i);
    String aliasName = xpath.evaluate("./text()", node);
}