我有一个xml文件,其内容中包含格式错误的HTML.
由于xml无法解析html标签,例如< br>我已经使用CDATA进行保存和解析.
我用过documentBuilder.setCoalescing(true);解析用于恢复数据 test< br> data< br>]]>没有CDATA标签..
但是在optput标签被& lt;替换和& gt;分别 ..
我期待结果中的这个字符串…
test
data
在解析的字符串中.
这该怎么做 ?任何的想法 ?
提前致谢 !
更新:我还有两个问题需要跟进..
1.有没有办法通过代码将格式错误的HTML(例如< br>)制作成可解析的xml(例如< br>),如果是的话,它会处理& nbsp;还呢?
2.是否有任何解决方案可以通过java将html文本转换为纯文本(例如< div> test& nbsp; text< / div> to test text)?
解决方法:
合并是一种操作,其中CDATA部分(节点)的内容被转换为文本节点并与相邻文本节点的内容合并.将CDATA部分转换为文本节点本身的这一要求将强加限制,即生成的文本节点由有效的XML字符组成.这将保留原始文档格式;换句话说,原始文档中节点的结构不会发生变化.
产生的行为是5个预定义实体的行为 – ,&,“和’,前三个将被展开,因为它们未改变的存在将改变文档结构.
简而言之,通过从DOM中提取值,您无法做您打算做的事情.解析文档后,您需要将值解码为您想要的值. Apache Commons Lang有一个实用程序类 – StringEscapeUtils that possesses the desired method.
标签:java,parsing,xml,html,cdata
来源: https://codeday.me/bug/20190621/1254425.html