gpt4 book ai didi

java - XMLStreamWriter writeCharacters 无需转义

转载 作者:数据小太阳 更新时间:2023-10-29 01:53:03 25 4
gpt4 key购买 nike

如何使用 XMLStreamWriter 准确写入我输入的内容?例如,如果我创建脚本标签并用 javascript 填充它,我不希望我所有的单引号都显示为 '

这是我编写的一个小测试,它没有使用我已有的任何抽象,只是调用 writeCharacters。

  public void testWriteCharacters() {
StringWriter sw = new StringWriter();
XMLOutputFactory factory = XMLOutputFactory.newInstance();

StringBuffer out = new StringBuffer();
try {
XMLStreamWriter writer = factory.createXMLStreamWriter(sw);
writer.writeStartElement("script");
writer.writeAttribute("type","text/javascript");
writer.writeCharacters("function hw(){ \n"+
"\t alert('hello world');\n" +
"}\n");
writer.writeEndElement();
out.append(sw);
} catch (XMLStreamException e) {
} finally {
try {
sw.close();
} catch(IOException e) {
e.printStackTrace();
}
}
System.out.println(out.toString());
}

这会为围绕 hello world 的两个单引号生成一个 apos 实体。

最佳答案

您可以使用工厂的属性:

final XMLOutputFactory streamWriterFactory = XMLOutputFactory.newFactory();
streamWriterFactory.setProperty("escapeCharacters", false);

如果工厂支持此属性,则此工厂创建的编写器将在不转义元素中文本的情况下写入字符。 XMLOutputFactoryImpl 可以。

关于java - XMLStreamWriter writeCharacters 无需转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com