0

我需要获取一个 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"…
4

2 回答 2

0

dom4j肯定会让你这样做。我不得不做非常相似的事情(尽管很多年前),而 dom4j 是我选择的工具。JDOM是一种替代方案——无论您觉得哪个更直观。

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

于 2013-07-17T13:56:59.750 回答
0

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

于 2013-07-17T16:29:48.607 回答