首页 文章

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

提问于
浏览
3

我有一个函数,我在其中创建一个Node并将textContent设置为特殊字符,例如项目符号(•) . 此函数在xsl:apply-templates中调用 . 但是,输出会逃脱特殊的特征而不是看到子弹,•出现在我的结果上 . 做了一些研究后,我没有找到任何方法来禁止从我的节点转义 . 我的论文是创建的Node是一个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 回答

  • 4

    问题是你正在使用 setTextContent 然后提供转义版本 - 你应该让API进行转义 . 您当前正在尝试将节点的文本内容设置为字面上的 "•" - 而不是子弹 . 你可能只想要:

    result.setTextContent("\u2022");
    

    指定内容应该只是U+2022 (bullet),这是十进制的代码点8226 .

相关问题