在几次尝试失败后我终于放弃了xslt的转换(如果你有兴趣,可以在这里查看我的问题:don't want xslt intepret the entity characters)。现在我正在尝试解决问题的javax Transformer。
问题是我想在xml和html中保留撇号'的转义:
< cell i='0' j='0' vi='0' parity='Odd' subType='-1'> "String'</cell>
输出是我不想要的:
< td nowrap="true" class="gridCell" i="0" j="0">"String'< /td>
我希望结果如下:
< td nowrap="true" class="gridCell" i="0" j="0">"String'< /td>
我不知道我们是否可以使用方法转换来执行此操作,我看到了类似的问题,但他需要相反的事情:How Do You Prevent A javax Transformer From Escaping Whitespace?
感谢您的任何帮助,谢谢!
答案 0 :(得分:1)
XML定义'
和'意思相同,因此大多数XML工具都将这种区别视为无关紧要。我想你应该质疑这个要求 - 你为什么要这样做?这有点像试图保留属性中“=”符号周围的空格:它没有意义。
答案 1 :(得分:1)
严格地说,文本节点中'
,'
,'
或'
之间的XML解析器没有区别,在属性中它略有不同,因为该值必须包含在"
或'
之间;如果你在'
中包含了一个属性值,你必须使用一个实体在值中指定一个撇号,而XML序列化器也会这样做。
我在Java中使用XML处理有点生疏,但我知道在C#中你可以让你的转换生成一个XML文档对象,并创建一个继承自XmlWriter类的类,通过覆盖来按顺序序列化它'WriteString'方法。希望你可以在Java中做类似的事情,可能是通过实现Result
接口,或者传递一个你可以使用的DOMResult
。我不记得你通常如何序列化java中的Document
,但它应该是你可以操作或覆盖的东西。