大家好,近来在java中用JDOM对XHTML文档进行操作,其中XHTML文档就是一种特殊的XML文档。现在碰到下面一个关于从结点中提取文本的问题,请大家指教一下。比如,分别有下面两个XHTML文档的片段:
<h2 datatype="rdf:XMLLiteral">
  E = mc<sup>2</sup>: The Most Urgent Problem of Our Time
</h2>
在这一个片段里我想提取文本如下:E = mc<sup>2</sup>: The Most Urgent Problem of Our Time
这段文本必须包括 <sup>2</sup> 这一部分,但是我用getTextTrim()时,它会把那一部分省略掉,怎么办?还有一个片段:
<span datatype="">Albert <strong>Einstein</strong></span>
这个片段我想提取下面文本:Albert Einstein
它不要包括<strong></strong> 但是要里面的文本,该怎么办?当然,是否要不要子结点的标签取决于datatype的属性,这个不用担心,关键是怎样提取这两种片段,谢谢

解决方案 »

  1.   

    在这一个片段里我想提取文本如下:E = mc <sup>2 </sup>: The Most Urgent Problem of Our Time
    这段文本必须包括  <sup>2 </sup> 这一部分,但是我用getTextTrim()时,它会把那一部分省略掉,怎么办?sup 是一个节点。 节点和文本text混合的话,我的办法就是自己来写。<span datatype="">Albert  <strong>Einstein </strong> </span>
    这个片段我想提取下面文本:Albert Einstein
    它不要包括 <strong> </strong> 但是要里面的文本,该怎么办? 节点span下面有文本节点Albert  和普通节点 strong (空白文本节点忽略的情况下)。普通节点strong下面有文本节点Einstein. 只取文本节点的值就是 Albert Einstein 了
      

  2.   

    但是具体用到java中的JDOM时,该怎样具体实现呢?
      

  3.   

    建议你用dom4j,比jdom好用多了,效率也高。