0
查找節點,我有以下XML:XML解析:無法通過標記名
<?xml version="1.0" encoding="UTF-8"?>
<subscriber>
<data name="quota">
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?><usage><version>1</version><field name="Cid"/><field name="Time"/><field name="totalVolume">4</field><field name="inputVolume"/><field name="outputVolume"/><field name="serviceSpecific"/><field name="nextResetTime"/><field name="Type"/><field name="GrantedTotalVolume"/><field name="GrantedInputVolume"/><field name="GrantedOutputVolume"/><field name="GrantedTime"/><field name="GrantedServiceSpecific"/><field name="QuotaState"/><field name="RefInstanceId"/><field name="Name">TEST_QUOTA</field></usage>
]]>
</data>
</subscriber>
爲了找到所有field
節點,我寫道:
dbuilder = dbc.newDocumentBuilder();
Document doc = dbuilder.parse(new InputSource(new StringReader(xmlString)));
NodeList nl = doc.getElementsByTagName("field");
log.debug("node list length: " + nl.getLength());
for(int i = 0 ; i < nl.getLength(); i++){
Element e = (Element)nl.item(i);
log.debug("node: " + e);
String name = e.getAttribute("name");
}
然而,NodeList
的長度爲0,所以它找不到名稱爲field
的任何節點。我想知道是否因爲field
節點之外的元數據,如果是這樣,我怎樣才能訪問field
節點?
您是否提取了數據標籤的內容?任何在<![CDATA [區域]內不會註冊爲元素。 –
哦,我明白了。我沒有。我應該首先'doc.getElementsByTagName(「data」)? –
@ k5_如果他們沒有註冊爲元素,我該如何解析它們? –