如何使用EntityReferences将内容插入DOM文档?

时间:2012-10-25 13:30:26

标签: java html

我在Java中使用org.w3c.dom.Document并插入EntityReference节点。这些添加正常但被javax.xml.transform.Transformer删除。这段代码解释了我的意思:

    DOMImplementation dmi = DOMImplementationRegistry.newInstance().getDOMImplementation("");
    Document doc = dmi.createDocument(null, "html", null);
    doc.getDocumentElement().appendChild(doc.createTextNode("AT"));
    doc.getDocumentElement().appendChild(doc.createEntityReference("amp"));
    doc.getDocumentElement().appendChild(doc.createTextNode("T"));
    Transformer tr = TransformerFactory.newInstance().newTransformer();
    tr.setOutputProperty(OutputKeys.METHOD, "html");
    tr.transform(new DOMSource(doc), new StreamResult(System.out));

这是

的输出
<html>ATT</html>

我想要

<html>AT&amp;T</html>

我知道如果我直接doc.createTextNode("AT&T")它会逃脱'&amp;'对我来说,所以我正在寻找一种方法

  • 保留我的EntityReferences,或
  • 让我查找已定义的实体,或
  • 作为EntityReference的子项填写实体的文本。

我必须处理实体引用名称,因为我必须实现一个看起来像

的接口
interface Xxx {
 void addText(String text);
 void addEntity(String entName);
 ...
}

0 个答案:

没有答案