gpt4 book ai didi

java - 在 xml 文件中使用 CDATA 来解析 html 数据

转载 作者:数据小太阳 更新时间:2023-10-29 02:05:35 31 4
gpt4 key购买 nike

我有一个 xml 文件,其内容中包含格式错误的 HTML .. 由于xml无法解析<br>之类的html标签我使用 CDATA 进行保存和解析。

我使用了 documentBuilder.setCoalescing(true) ;在解析以恢复数据时 <![CDATA[<br>test<br>data<br>]]>没有 CDATA 标签..

但是在 optput 中 < 和 > 标签被 &lt; and &gt; 代替了分别..

我期待这个字符串的结果......

<br>test<br>data<br>

在解析后的字符串中。

如何做到这一点?任何的想法 ?提前致谢 !

更新:我还有两个问题正在跟进..

1.有什么方法可以通过代码将格式错误的 HTML(例如 <br>)转换为可解析的 xml(例如 <br/>),如果可以,它会处理 &nbsp;吗?还有吗?

2.是否有任何解决方案可以通过 java 将 html 文本转换为纯文本(例如 <div>test&nbsp;text</div>test text )?

最佳答案

合并是将 CDATA 部分(节点)的内容转换为文本节点并与相邻文本节点的内容合并的操作。这种将 CDATA 部分转换为文本节点的要求本身将施加限制,即生成的文本节点必须由有效的 XML 字符组成。这将保留原始文档格式;换句话说,原始文档中的节点结构不会发生变化。

由此产生的行为是 5 个预定义实体的行为 - <, >, &, " and ' , 前三个将被扩展,因为它们不变的存在将改变文档结构。

简而言之,您不能通过从 DOM 中提取值来做您想做的事情。解析文档后,您需要将这些值解码为您想要的内容。 Apache Commons Lang 有一个实用程序类 - StringEscapeUtils that possesses the desired method .

关于java - 在 xml 文件中使用 CDATA 来解析 html 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291989/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com