Как преобразовать строку с содержимым в формате XML в документ JDom

Как преобразовать строку, имеющую содержимое в формате XML, в документ JDom.

я пытаюсь с кодом ниже:

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

SAXBuilder sb= new SAXBuilder();

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

Может ли кто-нибудь помочь мне решить вышеуказанную проблему. Заранее спасибо!!

2 ответа

Решение

Вот как вы обычно разбираете xml в Document

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

Это взято из JDOM IBM Reference

Если у вас есть строка, вы можете преобразовать ее в InputStream и затем передать ее

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

Для различных аргументов, которые поддерживает builder.build(), вы можете перейти к документации API.

Это часто задаваемые вопросы, которые должны иметь ответ более доступный, чем фактический FAQ: Как мне построить документ из строки?

Итак, я создал выпуск № 111

Что бы это ни стоило, я ранее улучшил сообщения об ошибках для этой ситуации (см. Предыдущий выпуск № 63, и теперь у вас должна появиться ошибка, которая говорит:

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

Суть в том, что вы должны использовать:

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

rolfl

Другие вопросы по тегам