串後空我有一個看起來像這樣的XML文檔:我得到的迴應作爲一個字符串XML文檔解析包含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](https://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm#ADXDK3000) – AxelH