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);
}
                                                     
                                     
                                    