【问题标题】:Parse xml with text and xml tags in same xml tag在同一个 xml 标签中使用文本和 xml 标签解析 xml
【发布时间】:2013-04-19 10:38:53
【问题描述】:

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

感谢您的帮助! 问候

【问题讨论】:

    标签: java xml xml-parsing


    【解决方案1】:

    您可以使用 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")));
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • xml 不是我创建的...所以我无法更改它。
      猜你喜欢
      • 2016-02-12
      • 2018-09-30
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2013-07-02
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多