2013-03-05 17 views

Odpowiedz

11

ten sposób można ogólnie analizować xml do dokumentu

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(); 
} 

To jest wzięte z JDOM IBM Reference

w przypadku masz ciąg można przekształcić go w InputStream, a następnie przekazać go

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

Dla różnych argumentów funkcji builder.build() można przejść przez api docs

+0

Dziękujemy za szybką odpowiedź. Kod wklejony przez ciebie działa dobrze, aby utworzyć nowy dokument przy użyciu pliku dostępnego w określonej ścieżce. Ale w moim przypadku muszę utworzyć/przekonwertować ciąg, który ma zawartość w formacie XML do dokumentu. –

+0

@akhil_gupta Zaktualizowałem odpowiedź na twoje żądanie – AurA

+0

Tak, kod działa poprawnie, aby utworzyć nowy dokument z istniejącego pliku .xml. Ale tutaj nie mam żadnego pliku xml. otrzymuję ten ciąg (który ma zawartość w formacie xml) z jakiegoś innego miejsca. Jak widać mój kod: String docString = txtEditor.getDocumentProvider(). GetDocument ( txtEditor.getEditorInput()). Get(); –

6

To FAQ że shold mieć odpowiedź bardziej dostępne niż rzeczywisty FAQ: How do I build a document from a String?

Więc stworzyliśmy issue #111

Na co warto, już wcześniej ulepszone komunikaty o błędach w tej sytuacji (zobacz the previous issue #63 i teraz powinno być błąd, który mówi:

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."); 

Konkluzja jest taka, że ​​należy używać:

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

rolfl

+0

Wygląda na to, że kod wklejony przeze mnie również działa poprawnie. był problem w innym miejscu w moim kodzie. Ale dzięki za rozpatrzenie tego. –