3

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

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

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

谢谢你的帮助 :)

编辑:xslt 中的禁用输出转义之类的东西,但对于 java Element/node 应该可以解决问题

4

1 回答 1

4

问题是您正在使用setTextContent但随后提供了转义版本 - 您应该让 API 进行转义。您当前正在尝试将节点的文本内容设置为字面意思"•"- 而不是项目符号。你可能只想:

result.setTextContent("\u2022");

指定内容应该只是U+2022(项目符号),即十进制代码点 8226。

于 2013-08-14T20:20:25.027 回答