1

Java (Android) で XML ファイルを解析する際に小さな問題があります。

次のような XML ファイルがあります。

<Events>
  <Event Name="Olympus Has Fallen">
    ...
  </Event>
  <Event Name="Iron Man 3">
    ...
  </Event>
</Events>

これを行うことで、すでに NodeList を取得できました。

URL url = new URL("********");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();

NodeList nodeList = doc.getElementsByTagName("Event");

また、これを行うことで、NodeList のすべての項目を取得できました。

for (int i = 0; i < nodeList.getLength(); i++) {
    // Item
    Node node = nodeList.item(i);
    Log.i("film", node.getNodeName());
}

しかし、これは Name タグの値の代わりに Logs: "Event" だけです。この「name」タグの値を XML から出力するにはどうすればよいですか。

誰でもこれで私を助けることができますか?前もって感謝します!

4

1 に答える 1

6

しかし、これは Name タグの値の代わりに Logs: "Event" だけです。

はい、要素の名前を求めているからです。Name「タグ」はありません-Name 属性があり、それが見つかるはずです:

// Only check in elements, and only those which actually have attributes.
if (node.hasAttributes()) {
    NamedNodeMap attributes = node.getAttributes();
    Node nameAttribute = attributes.getNamedItem("Name");
    if (nameAttribute != null) {
        System.out.println("Name attribute: " + nameAttribute.getTextContent());
    }
}

(正確な用語を使用することは非常に重要です。ノード、要素、属性などの違いを知っておくことは価値があります。他の人と通信するときと、呼び出す API の適切なビットを探すときに、非常に役立ちます。)

于 2013-05-17T08:41:40.253 に答える