如何使用Java API转换添加结构标记的XML数据文件

时间:2018-06-15 07:53:52

标签: java dom

我有像

这样的XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><root>
<parameters>
<param>
        <name>john</name>
        <age>18</age>
</param>
</parameters>

并希望将其转换为

<?xml version="1.0" encoding="UTF-8" standalone="no"?><root>
<parameters>
<L1>
    <param>
        <name>john</name>
        <age>18</age>
    </param>
</L1>   
</parameters>

以编程方式使用DOM Java API来封装标记

1 个答案:

答案 0 :(得分:0)

如果您想以编程方式执行此操作,可以执行以下操作:

        // load document
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(url.toURI().toString());

        // Transform document
        Element root = doc.getDocumentElement();
        Element elm = doc.createElement("L1");
        while (root.hasChildNodes()) {
            Node child = root.getFirstChild();
            root.removeChild(child);
            elm.appendChild(child);
        }
        root.appendChild(elm);

        // Output to console for testing
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(System.out);
        transformer.transform(source, result);

但你宁愿使用XSLT样式表(无论如何你都在使用变换器)。