将XML元素作为文本节点附加(转义)

时间:2013-07-17 13:21:13

标签: java xml

我需要获取XML元素及其子元素,转义XML并将它们作为文本节点附加到另一个文档中。我知道这种方法很愚蠢,但API需要它。

我可以使用Java的许多XML库之一来实现这一目标吗? 我尝试使用JAXP,但我的代码没有转义撇号和双引号。

    …
    String content = elementToString(nodeToEscape);
    Text text = document.createTextNode(content);
    Node n = document.getElementsByTagName("targetNode").item(0);
    n.appendChild(text);
}

String elementToString(Element element) {
    Document document = element.getOwnerDocument();
    DOMImplementationLS domImplLS = (DOMImplementationLS) document.getImplementation();
    LSSerializer serializer = domImplLS.createLSSerializer();
    return serializer.writeToString(element);
}

生成的文档片段:

 <dataItem aggregate="none" name="Order number"…

2 个答案:

答案 0 :(得分:0)

dom4j肯定会让你这样做。我不得不做很多类似的事情(虽然很多年前),dom4j是我的首选工具。 JDOM是另一种选择 - 无论你发现哪种更直观。

两者都提供了比JAXP更友好的XML对象模型。

答案 1 :(得分:0)

您无需转义引号和撇号。根据:http://www.w3schools.com/xml/xml_syntax.asp只有字符“<”和“&”在XML中严格违法