【发布时间】:2017-10-09 21:53:24
【问题描述】:
我有一个如下所示的 XML 文档:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/resources/transform.xslt"?>
<map name="response">
<prop name="numConsumers">87</prop>
<prop name="numOutEventsQueued">17</prop>
<prop name="numOutEventsUnAcked">2131</prop>
<prop name="numOutEventsSent">538108577</prop>
</map>
我将响应作为字符串获取,因此我将其解析为 XML 并尝试提取 numConsumers(值 87):
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
builder = factory.newDocumentBuilder();
Document doc = builder.parse(new InputSource(new StringReader(xml)));
NodeList nodeList = doc.getChildNodes();
for(int i = 0; i < nodeList.getLength(); i++) {
String numConsumers = nodeList.item(i).getTextContent();
}
但问题是,当i = 0、numConsumers 是type="text/xsl" href="/resources/transform.xslt" 和i = 1 时,它是连接的所有子节点的值。我究竟做错了什么?我知道当前代码没有明确寻找我想要的节点,但此时我只是想看看我是否可以到达任何节点。
【问题讨论】:
-
可能是因为您只是在阅读
<?xml-stylesheet>属性。您应该先学习一些关于如何阅读完整 XML 的教程。一开始可能会很棘手。这是一个好的开始Java XML