gpt4 book ai didi

Java DOM : getElementsByTagName is returning no elements?

转载 作者:行者123 更新时间:2023-12-02 09:07:26 24 4
gpt4 key购买 nike

我正在尝试解析 http://web.mta.info/status/ServiceStatusSubway.xml 处的 XML 文档并使用以下代码提取所有 PtSituationElement 元素:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document subwayStatusDoc = builder.parse(new URL("http://web.mta.info/status/ServiceStatusSubway.xml").openStream());

NodeList situationList = subwayStatusDoc.getDocumentElement().getElementsByTagName("PtSituationElement");
System.out.println(situationList.item(0)); //prints null

我在这里做错了什么?

最佳答案

PtSituationElement 标记包含子标记,因此您需要进入这些子标记。仅打印 .item(0) 依赖于 toString() 方法,显然它并不能很好地解释您的节点。

所以添加这个来查看子节点中的一些数据:

    Node item = situationList.item(0);
NodeList childNodes = item.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
System.out.println(childNodes.item(j).getTextContent());
}

(我不确定您想如何处理 xml 结构中的数据,但此示例显示了如何继续您的工作。)

此外,我注意到 LongDescription 标记包含的 HTML 不是正确的 XML(<br clear=left> 应该是 <br clear=left> 等)。解析器可能有问题。如果 HTML 被转义的话会更好(参见 How to escape "&" in XML? )。

关于Java DOM : getElementsByTagName is returning no elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701093/

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