StAX逃逸大于(>)

时间:2012-01-18 14:37:56

标签: java xml stax

我在http://stax.codehaus.org/的vrsion 1.2.0中使用StAX Streaming Api。 当我尝试将以下xml写入文件时,不会转义大于char的字符。然而,似乎没有逃脱的问题。

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="&lt;foo>"

我也试过使用writeCharacters方法 - 结果相同。这是一个错误还是意图?有没有解决方法? (通过

手动替换&gt ;.
replaceAll(">", "&gt;");

导致'&amp;'逃脱了。

感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:7)

基本上,这是因为你不需要来逃避>。它已经做对了。