我正在编写一个将 xml 文件作为输出写入的 java 程序。现在,xml 中有某些节点值包含实体引用,如 <、>、' 和“。当前输出如下所示:
<Parent>
<Child><'"</Child>
</Parent>
我需要的输出:
<Parent>
<Child><'"</Child>
</Parent>
我在下面的帖子中读到,也许它不可能做我想做的事: StAX XML Parser not escaping single quote (')
但是读取此 xml 文件的系统需要转义所有引号和撇号。我怎样才能做到这一点?
一些代码:
DocumentBuilderFactory coDocFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder coDocBuilder = coDocFactory.newDocumentBuilder();
coXMLDocument = coDocBuilder.newDocument();
Element coParent = coXMLDocument.createElement("Parent");
coXMLDocument.appendChild(coParent);
Element coChild = coXMLDocument.createElement("Child");
coParent.appendChild(coChild);
coChild.setTextContent("<>/'/""); //apostrophe and quotes have been escaped
TransformerFactory coTransFactory = TransformerFactory.newInstance();
Transformer transformer = coTransFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource coDomSource = new DOMSource(coXMLDocument);
StreamResult coResult = new StreamResult(new File("C:\\a.xml"));
transformer.transform(coDomSource, coResult);
帮助将不胜感激。