2013-04-19 1 views
0

Я wan't для разбора XML с Java, который выглядит примерно так:Анализировать XML с текстовыми и XML-тегов в одном XML-тег

<sentence>This is a <a><b>long</b></a> sentence.</sentence> 
<sentence>This is a second <a><b>even</b></a> longer sentence.</sentence> 

В результате мне нужно целое предложение без XML. Я попытался разобрать это с dom4j. Вызов функции element.getText() (текущий элемент - это тег предложения), я просто получаю предложение без текста во вложенных тэгах xml.

Благодарим за помощь! С уважением

ответ

0

Вы можете использовать XPath, чтобы выбрать все текстовые узлы

String getAllTextContent(Node node) { 
    List<Node> nodes = node.selectNodes("descendant-or-self::text()"); 
    StringBuilder buf = new StringBuilder(); 
    for (Node n : nodes) { 
    buf.append(n.getText()); 
    } 
    return buf.toString(); 
} 
// usage 
System.out.println(getAllTextContent(doc.selectSingleNode("//sentence"))); 
+0

Большое спасибо! Это сработало :) – user2298830

0

Храните ваши данные в [CDATA] раздел в ваших XML-теги

<sentence><![CDATA[This is a <a><b>long</b></a> sentence.]]></sentence> 
+0

XML-не создается мной .. .so я не могу его изменить. – user2298830

Смежные вопросы