Ich habe die folgende XML:XML-Analyse: Kann nicht finden Knoten von Tagname
<?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>
Um alle field
Knoten zu finden, schrieb ich:
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");
}
jedoch die Länge des NodeList
ist 0, daher kann kein Knoten mit dem Namen field
gefunden werden. Ich frage mich, ob es wegen der Metadaten außerhalb der field
Knoten ist, und wenn ja, wie kann ich auf die field
Knoten zugreifen?
haben Sie den Inhalt des Daten-Tags extrahiert? Alles in einer
Oh, ich verstehe. Ich tat es nicht. Sollte ich 'doc.getElementsByTagName (" Daten ")' zuerst? –
@ k5_ Wenn sie sich nicht als Elemente registrieren, wie kann ich sie analysieren? –