我有一个函数,我在其中创建一个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元素/节点,应该这样做
答案 0 :(得分:4)
问题在于您使用的是setTextContent
,但随后提供了转义版本 - 您应该让API执行转义操作。您当前正在尝试将节点的文本内容设置为字面"•"
- 而不是子弹。你可能只想要:
result.setTextContent("\u2022");
指定内容应为U+2022 (bullet),即十进制的代码点8226。