JDOM получить строку содержимого

скажем, у меня есть xml:

<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document>

и теперь мне нужно получить содержимое в виде строки, поэтому я бы

blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd

Я уже некоторое время ковыряюсь с этим в своей голове, и я, кажется, не могу понять это.

Надеюсь получить указания относительно того, что мне нужно делать.

РЕДАКТИРОВАТЬ:

просто для ясности, скажем, у меня есть такой XML:

SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(new StringReader("<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document>"));

и теперь мне нужно получить содержимое


person magnuskahr    schedule 21.02.2017    source источник


Ответы (1)


Очень редко требуется получить несовместимое подмножество XML-документа, как вы хотите. Гораздо чаще можно получить только текстовое содержимое: blabla test hello dfh sdfsd

Обратите внимание, что вы можете получить подмножество содержимого как «список содержимого» корневого элемента, а затем вывести только этот список в виде строки:

    XMLOutputter xout = new XMLOutputter();
    String txt = xout.outputString(doc.getRootElement().getContent());
    System.out.println(txt);

Для себя я написал код:

public static void main(String[] args) throws JDOMException, IOException {
    SAXBuilder sb = new SAXBuilder();
    Document doc = sb.build(new StringReader("<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document>"));

    XMLOutputter xout = new XMLOutputter();
    String txt = xout.outputString(doc.getRootElement().getContent());
    System.out.println(txt);        
}

и он выводит:

blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd
person rolfl    schedule 21.02.2017