如何防止Scala的漂亮打印机删除CDATA?

时间:2015-02-04 08:28:44

标签: xml scala pretty-print

我使用Scala xml PrettyPrinter库来格式化xml文件。它删除了具有CDATA部分的标签内容。如何防止PrettyPrinter删除CDATA?

这是代码:

val printer = new scala.xml.PrettyPrinter(80, 2)
printer.format(XML.loadString(input))

它会将<textFieldExpression><![CDATA[something]]></textFieldExpression>转换为<textFieldExpression>something</textFieldExpression>

1 个答案:

答案 0 :(得分:2)

我不认为它是删除CDATA的PrettyPrinter,而是XML.loadString(...)。如果您尝试创建这样的XML并打印它:

val input = <textFieldExpression>{new xml.PCData("something")}</textFieldExpression>
val printer = new scala.xml.PrettyPrinter(80, 2)
printer.format(XML.loadString(input.toString))
// => <textFieldExpression>something</textFieldExpression>
printer.format(input)
// => <textFieldExpression><![CDATA[something]]></textFieldExpression>