我需要一個XML元素及其子元素,將XML轉義並將它們作爲文本節點追加到另一個文檔中。我知道這種方法很愚蠢,但API需要它。將XML元素附加爲文本節點(轉義)
我可以使用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"…
你確定你需要轉義引號和撇號嗎?根據:http://www.w3schools.com/xml/xml_syntax.asp只有字符「<」和「&」在XML中嚴格違法。 – gawi
@gawi:你是對的!謹慎發佈它作爲答案? – prasopes