(アセットから) xml ファイルを解析しようとしていますが、正しく取得できません。
通常、これを行うときは、xml ファイルを次のようにフォーマットします。
<channel>
<item>
<name>Hello Earth</name>
<place>Earth</place>
</item>
<item>
<name>Goodbye Mars</name>
<place>Mars</place>
</item/>
</channel>
そして、次のコードを使用して、必要なものを解析します。
AssetManager assetManager = getAssets();
InputStream inputStream = assetManager.open("words.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setCoalescing(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(inputStream);
org.w3c.dom.Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("item");
String name="";
String place="";
for (int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
NodeList properties = item.getChildNodes();
for (int j = 0; j < properties.getLength(); j++) {
Node property = properties.item(j);
String propertyName = property.getNodeName();
if (propertyName.equalsIgnoreCase("name")) {
String strText = property.getFirstChild()
.getNodeValue();
nam = strText;
}
if (propertyName.equalsIgnoreCase("place")) {
String strText = property.getFirstChild()
.getNodeValue();
place = strText;
}
db.insertWord(name, place);
}
ただし、xml は別のソースからのものであり、フォーマットが異なります。mysql エクスポートであるため、代わりに属性を使用します。解析する必要がある XML は次のとおりですが、これをどのように行うべきかわかりません。getAttribute() メソッドをいじってみましたが、xml からデータを取得できません。
<table name="item">
<column name="name">Hello Earth</column>
<column name="place">Earth</column>
</table>
<table name="item">
<column name="name">Goodbye Mars</column>
<column name="place">Mars</column>
</table>