我正在将XML转换为HTML,我需要使用<![CDATA[
... ]]>
包装HTML内容(这是一项要求)。
我想我可以利用一个Java静态方法,使用org.w3c.dom列出指定节点的所有子节点,用于此任务。
private static void showAllChildren(NodeList nodeList) {
if (nodeList != null && nodeList.getLength() > 0) {
for (int i = 0; i < nodeList.getLength(); i++) {
Node tempNode = nodeList.item(i);
if (tempNode.getNodeType() == Node.ELEMENT_NODE) {
System.out.println("\nNode Name: " + tempNode.getNodeName() + " [OPEN]");
System.out.println("Node Value: " + tempNode.getTextContent());
}
if (tempNode.hasChildNodes()) {
showAllChildren(tempNode.getChildNodes(), doc);
}
System.out.println("Node Name: " + tempNode.getNodeName() + " [CLOSE]");
}
}
}
以下是XML文件示例:
<content>
<records>
<record>
<param1>A1</param1>
<param2>
<div><p>this html that should be wrapped with CDATA</p></div>
</param2>
<param3>
<table><tr><td>this html that should be wrapped with CDATA, as well</td></tr></table>
</param3>
</record>
</records>
</content>
是否存在Java库或方法或某些方法可以扫描XML文件并将XML标记与HTML标记区分开来并适当地包装HTML标记我将XML转换为HTML并且我需要包装带CDATA的HTML内容?
当然,通过这个特定的XML示例,我可以编写代码来查找param XML标记,并使用<![CDATA[
... ]]>
包含其中的任何内容。但是如果有一种自动扫描和包装HTML标记的方法会更容易,特别是如果XML文件结构将来发生变化。这将使维护变得更加容易。
非常感谢。