如何禁用java节点的特殊字符转义

时间:2013-08-14 20:17:32

标签: java xml xslt

我有一个函数,我在其中创建一个Node并将textContent设置为特殊字符,例如项目符号(•)。此函数在xsl:apply-templates中调用。但是,输出会逃脱特殊的特征而不是看到子弹,•出现在我的结果上。做了一些研究后,我没有找到任何方法来禁止从我的节点转义。我的论点是创建的节点是CDATA部分,但我该如何还原呢?

以下是我用来创建节点的代码:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();                
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();                
Document doc = docBuilder.newDocument();
result = doc.createElement("doesntmatter");   
result.setTextContent("•");

感谢您的帮助:)

编辑:像xslt中的disable-output-escaping,但是对于java元素/节点,应该这样做

1 个答案:

答案 0 :(得分:4)

问题在于您使用的是setTextContent,但随后提供了转义版本 - 您应该让API执行转义操作。您当前正在尝试将节点的文本内容设置为字面"•" - 而不是子弹。你可能只想要:

result.setTextContent("\u2022");

指定内容应为U+2022 (bullet),即十进制的代码点8226。