Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 大于(>;)的StAX转义_Java_Xml_Stax - Fatal编程技术网

Java 大于(>;)的StAX转义

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

我正在使用vrsion 1.2.0中的StAX流式Api。 当我试图将以下xml写入文件时,不会转义大于字符。然而,小于似乎没有逃跑的问题

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="&lt;foo>"
replaceAll(">", "&gt;");