使用Java中的CData在XML中包装HTML标记

时间:2015-04-20 14:22:28

标签: java html xml encode cdata

我正在将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文件结构将来发生变化。这将使维护变得更加容易。

非常感谢。

0 个答案:

没有答案