在 Java DOM 中将节点的内部 XML 作为字符串获取
我有一个XML org.w3c.dom.Node,看起来像这样:
<variable name="variableName">
<br /><strong>foo</strong> bar
</variable>
如何将零件作为字符串获取?<br /><strong>foo</strong> bar
我有一个XML org.w3c.dom.Node,看起来像这样:
<variable name="variableName">
<br /><strong>foo</strong> bar
</variable>
如何将零件作为字符串获取?<br /><strong>foo</strong> bar
同样的问题。为了解决这个问题,我编写了这个帮助程序函数:
public String innerXml(Node node) {
DOMImplementationLS lsImpl = (DOMImplementationLS)node.getOwnerDocument().getImplementation().getFeature("LS", "3.0");
LSSerializer lsSerializer = lsImpl.createLSSerializer();
NodeList childNodes = node.getChildNodes();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < childNodes.getLength(); i++) {
sb.append(lsSerializer.writeToString(childNodes.item(i)));
}
return sb.toString();
}
对此没有简单的方法。 给出连接在一起的每个子节点的文本。 将为您提供当前节点的文本(如果它是 、 或 节点)。因此,您需要使用 的组合序列化节点,并生成字符串。org.w3c.dom.Node
getTextContent()
getNodeValue()
Attribute
CDATA
Text
getChildNodes()
getNodeName()
getNodeValue()
还可以使用现有的各种 XML 序列化库之一执行此操作。有甚至JAXB。这里讨论的是:Java中的XML序列化?XStream