2016-06-01 11 views
1

Ich bin neu zu analysieren XML-Dokument.Wie erkennt man, ob das xml-Tag (Element) childs hat oder nicht?

Ich analysiere ein XML-Dokument und ich möchte meinen eigenen JSON basierend auf dieser XML-Datei erstellen. Aus diesem Grund möchte ich identifizieren das XML-Tag hat Kinder oder nicht?

Ich overrided die Startelement() Methode der Content durch Default Klasse erstreckt.

Code wie folgt:

@Override 
public void startElement(String uri, String localName,String qName,Attributes attributes){ 
    if(qName has a child){ 
     //perform 1st task 
    } else { 
     //perform 2nd task 
    } 
} 

Bitte helfen Sie mir, diese Aufgabe zu tun, und leite mich, wenn ich falsch gehe?

Antwort

0

Wenn Ihr Dokument klein ist, vereinfacht die Verwendung eines Dom-Parsers Ihre Aufgabe.

Wenn ein SAX-Parser zwingend erforderlich ist, sollten Sie auch die Methode "endElement" überschreiben. Dann sind alle startElement-Ereignisse zwischen einem Start- und einem Endelement auf demselben Element mit einem untergeordneten Element verknüpft.

+0

Mein Dokument ist groß, also habe ich mich für einen SAX Parser entschieden. ok aber wie kann ich ein tag erkennen ob Kind oder nicht? Weil startElement und endElement-Methode jedes Mal für jedes Element aufgerufen wird? – ketan

+0

@ Ketan - mit SAX, müssen Sie eine Menge Grunzen Arbeit, wie zum Beispiel versuchen, Eltern/Kind-Beziehung herauszufinden ... gibt es keine Verknüpfung mit Sax Parsing? Wie groß ist Ihre XML-Datei? –

+0

Diese Aufgabe, die ich nur mit SAX-Parser machen möchte, ist becoz DOM in einem solchen Fall großer XML-Datei. Gibt es eine Möglichkeit, die Eltern-Kind-Beziehung in SAX zu identifizieren? pls bieten diese Lösung – ketan