gpt4 book ai didi

java - 如何从 Java (Android) 中的 XML 节点获取标记 'Name'

转载 作者:行者123 更新时间:2023-11-29 07:08:41 27 4
gpt4 key购买 nike

我在用 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());
}

但这只是 Logs: "Event"而不是 Name 标签的值。如何从 XML 中输出此“名称”标签的值。

谁能帮我解决这个问题?提前致谢!

最佳答案

But this just Logs: "Event" instead of the value of the Name tag.

是的,因为您要的是元素的名称。没有 Name“标签”- 有一个 Nameattribute,这就是您应该找到的内容:

// 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 的正确位时,这将对您有很大帮助。)

关于java - 如何从 Java (Android) 中的 XML 节点获取标记 'Name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com