我使用的是http://stax.codehaus.org/ 1.2.0版本中的StAX Streaming Api。当我试图将下面的xml写到一个文件中时,大于字符没有被转义。然而,lesser似乎在转义方面没有问题。
out = new FileOutputStream("foo.xml");
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLStreamWriter writer = factory.createXMLStreamWriter(out);
writer.writeStartDocument();
writer.writeStartElement("foo");
writer.writeAttribute("test", "<foo>");
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();
out.close();输出(仅相关)如下:
<foo test="<foo>"我还尝试使用writeCharacters方法--结果是一样的。这是一个bug还是一个意图?有什么变通方法吗?(将>手动替换为
replaceAll(">", ">");会导致'&‘自身转义。
提前感谢您的帮助。
发布于 2012-01-18 22:40:16
基本上,这是因为您不需要避开>。它已经在做正确的事情了。
https://stackoverflow.com/questions/8911942
复制相似问题