在几次尝试失败之后,我终于放弃了对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>我不知道我们是否可以使用方法transform来做这件事,我看到了一个类似的问题,但他需要相反的东西:How Do You Prevent A javax Transformer From Escaping Whitespace?
感谢您的帮助,谢谢!
发布于 2011-05-26 22:29:47
严格地说,对于XML解析器来说,文本节点中的'、'、'或'没有区别,属性中的解析器略有不同,因为值必须包含在"或'之间;如果在'中包含了属性值,则必须使用实体在值中指定撇号,XML序列化程序也会执行同样的操作。
我对Java中的XML处理有点生疏,但我知道在C#中,您可以让您的转换生成一个XML document对象,并创建一个继承自XmlWriter类的类来序列化它,方法是覆盖“WriteString”方法。希望您可以在Java语言中做类似的事情,可能是通过实现Result接口,或者传入一个您可以使用的DOMResult。我不记得在java中通常是如何序列化Document的,但它应该是你可以操作或覆盖的东西。
发布于 2011-05-26 19:11:31
XML定义了'和‘来表示相同的东西,所以大多数XML工具都会认为这两者之间的区别无关紧要。我认为你应该质疑这个要求--你为什么要这样做?这有点像在属性中保留"=“符号周围的空格:这是没有意义的。
https://stackoverflow.com/questions/6135720
复制相似问题