java:从xml中删除cdata标记

San*_*yBr 7 java regex xslt xpath cdata

xpath非常适合解析xml文件,但它不适用于cdata标记内的数据:

<![CDATA[ Some Text <p>more text and tags</p>... ]]>
Run Code Online (Sandbox Code Playgroud)

我的解决方案:首先获取xml的内容并删除

"<![CDATA["  and  "]]>".
Run Code Online (Sandbox Code Playgroud)

之后我会从xml文件中运行xpath"到达所有内容".有更好的解决方案吗?如果没有,我怎么能用正则表达式做?

Paŭ*_*ann 2

存在 CDATA 标记的原因是其中的所有内容都是纯文本,没有任何内容应直接解释为 XML。您可以在问题中写下您的文档片段,或者

 Some Text &lt;p&gt;more text and tags&lt;/p&gt;... 
Run Code Online (Sandbox Code Playgroud)

(带有前导和尾随空格)。

如果您确实想将其解释为 XML,请从文档中提取文本,然后再次将其提交给 XML 解析器。