【发布时间】:2013-03-25 09:27:24
【问题描述】:
下面的代码(基于http://jax-ws.java.net/nonav/jax-ws-20-fcs/arch/com/sun/xml/ws/util/xml/StAXSource.html的示例代码)
String xml = "<a><b>a text</b><!--a comment--><b/></a>";
StringReader sr = new StringReader(xml);
XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(sr);
Source source = new StAXSource(reader);
//Source source = new StreamSource(sr);
Result result = new StreamResult(System.out);
TransformerFactory.newInstance().newTransformer().transform(source, result);
产生以下结果:
<?xml version="1.0" encoding="UTF-8"?><a><b>a text</b><b/></a>
即它去掉了 xml 注释。如果我将 StAXSource/XMLStreamReader 替换为 StreamSource,则保留注释。
有谁知道为什么 XMLStreamReader/StAXSource 组合会将它们剥离出来,是否有任何方法可以阻止它?测试是在没有第三方 jar 的 1.6 和 1.7 环境中完成的,所以 XMLStreamReader 变成了一个
com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl
谢谢
【问题讨论】:
标签: java xml stax xml-comments xmlstreamreader