0

我不想用看起来像这样的 java 解析 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 标签中文本的句子。

谢谢你的帮助!问候

4

2 回答 2

0

将您的数据保存在 xml 标签的 [CDATA] 部分中

<sentence><![CDATA[This is a <a><b>long</b></a> sentence.]]></sentence>
于 2013-04-19T10:43:55.730 回答
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")));
于 2013-04-19T11:46:35.430 回答