0

XML 要素とその子を取得し、XML をエスケープして、それらをテキスト ノードとして別のドキュメントに追加する必要があります。このアプローチがばかげていることはわかっていますが、API にはそれが必要です。

Java 用の多くの XML ライブラリの 1 つを使用して、これを実現できますか? 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は代替手段です。より直感的な方を選択してください。

どちらも、JAXP よりも使いやすい XML のオブジェクト モデルを提供します。

于 2013-07-17T13:56:59.750 に答える