Java 大于(>;)的StAX转义
我正在使用vrsion 1.2.0中的StAX流式Api。 当我试图将以下xml写入文件时,不会转义大于字符。然而,小于似乎没有逃跑的问题Java 大于(>;)的StAX转义,java,xml,stax,Java,Xml,Stax,我正在使用vrsion 1.2.0中的StAX流式Api。 当我试图将以下xml写入文件时,不会转义大于字符。然而,小于似乎没有逃跑的问题 out = new FileOutputStream("foo.xml"); XMLOutputFactory factory = XMLOutputFactory.newInstance(); XMLStreamWriter writer = factory.createXMLStreamWriter(out); writer.writeStartDocu
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();
导致“&”自身逃逸
感谢您的帮助。基本上,这是因为您不需要逃避
。它已经做了正确的事情。只是对一些来源感到好奇,比如说“writeCharacters(…)方法用于转义诸如&、和等字符”。@elyan:老实说,我怀疑这只是过于热心的文档。也许在某一点上它做了(不必要的)escape
,但现在没有了。@elyan:我刚刚检查过规范,有一个例子确实需要转义:“直角括号(>)可以用字符串“”表示,为了兼容,当它出现在内容中的字符串“]]>”中时,必须使用“”或字符引用转义,当该字符串未标记CDATA节的结束时。“
<foo test="<foo>"
replaceAll(">", ">");