2013-03-05 7 views
8

Konvertieren einer Zeichenfolge mit Inhalten im XML-Format in ein JDom-Dokument.So konvertieren Sie einen String mit Inhalten im XML-Format in das JDom-Dokument

i mit folgendem Code versuchen:

String docString = txtEditor.getDocumentProvider().getDocument(
txtEditor.getEditorInput()).get(); 

SAXBuilder sb= new SAXBuilder(); 

doc = sb.build(new StringReader(docString)); 

Kann jemand mir helfen, oben beschriebenes Problem zu lösen. Vielen Dank im Voraus !!

Antwort

11

Dies ist, wie Sie in der Regel eine XML analysieren

try { 
    SAXBuilder builder = new SAXBuilder(); 
    Document anotherDocument = builder.build(new File("/some/directory/sample.xml")); 
} catch(JDOMException e) { 
    e.printStackTrace(); 
} catch(NullPointerException e) { 
    e.printStackTrace(); 
} 

zum Dokument Diese von JDOM IBM Reference

Bei genommen haben Sie String Sie können es auf Inputstream konvertieren und geben es dann

String exampleXML = "<your-xml-string>"; 
InputStream stream = new ByteArrayInputStream(exampleXML.getBytes("UTF-8")); 
Document anotherDocument = builder.build(stream); 

Für die verschiedenen Argumente, die builder.build() unterstützt, können Sie die api docs

durchlaufen
+0

Vielen Dank für Ihre schnelle Antwort. Der von Ihnen eingefügte Code funktioniert einwandfrei, um ein neues Dokument mit der Datei zu erstellen, die unter einem bestimmten Pfad verfügbar ist. Aber in meinem Fall muss ich eine Zeichenfolge erstellen/konvertieren, die Inhalt im XML-Format in Document hat. –

+0

@akhil_gupta Ich habe die Antwort mit Ihrer Anforderung aktualisiert – AurA

+0

Ja, Code funktioniert gut, um ein neues Dokument aus einer vorhandenen XML-Datei zu erstellen. Aber hier habe ich keine XML-Datei. Ich bekomme diese Zeichenfolge (die Inhalte im XML-Format hat) von etwas wo sonst. Wie Sie sehen können, ist mein Code: String docString = txtEditor.getDocumentProvider(). GetDocument ( txtEditor.getEditorInput()). Get(); –

6

Dies ist eine FAQ ist, die eine Antwort zugänglicher als die tatsächliche FAQ haben shold: How do I build a document from a String?

Also, ich issue #111

Für erstellt haben, was es wert ist, habe ich verbessert vorher die Fehlermeldungen für diese Situation (siehe the previous issue #63 und jetzt sollten Sie einen Fehler haben, der sagt:

MalformedURLException mx = new MalformedURLException(
    "SAXBuilder.build(String) expects the String to be " + 
    "a systemID, but in this instance it appears to be " + 
    "actual XML data."); 

Unterm Strich ist, dass Sie verwenden:

Document parseddoc = new SaxBuilder().build(new StringReader(myxmlstring)); 

röll

+0

Eigentlich scheint es, dass Code, der von mir eingefügt wurde, auch gut funktioniert. Es gab ein Problem an einem anderen Ort in meinem Code. Aber danke, dass du dir das angeschaut hast. –

Verwandte Themen