我在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&T</html>
我知道如果我直接doc.createTextNode("AT&T")
它会逃脱'&amp;'对我来说,所以我正在寻找一种方法
我必须处理实体引用名称,因为我必须实现一个看起来像
的接口interface Xxx {
void addText(String text);
void addEntity(String entName);
...
}