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