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_如果他们没有注册为元素,我该如何解析它们? –