繁体   English   中英

格式化(漂亮打印)java中xml CDATA值的内容

[英]format (pretty print) the content of a xml CDATA value in java

我有一些代码可以清理修改后的XML文件。 这些XML文件包含包含有效HTML的CDATA部分。 我想解析XML文件并设置CDATA值的格式,使其可读,即漂亮的输出。 我该怎么做,因为使用“ TransformerFactory”漂亮地打印整个XML文件不会漂亮地打印CDATA。

我认为我应该将CDATA内容值解析并格式化为XML内容,然后将其写回到CDATA节点中,但这是正确的方法吗? 是否没有办法告诉Transformer也将CDATA内容格式化为XML / HTML?

XML中的CDATA是任意字符数据。 根据定义,它不需要遵循XML和字符实体等的规则。 XML解析器不会对CDATA内容执行任何操作,因为不应这样做。

您说在文档中CDATA包含HTML。 请注意,HTML不是XML! (除非它是过时的XHTML)。 HTML允许一个元素没有关闭的元素,而另一个属性则允许没有值的裸属性。

您将需要从XML中获取CDATA并将其传递给HTML解析器,执行所需的漂亮打印转换,然后将其放回XML文档中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM