Groovy:如何转换混合内容的XML

时间:2017-03-09 12:09:17

标签: xml groovy

我将数据从一个文件转换为另一个文件。该程序的任务是从源文件中获取数据并转储到中间模板文件中,从而创建一个新文件。

问题是我遇到了混合内容的问题。

源文件

源文件1:

  <para>This para is fine</para>

源文件2:

  <para><emph>This</emph> para is also fine</para>

源文件3:

  <para>This para is <emph>not</emph> fine</para>

中级模板文件

targetPara.xml:

<p></p>

targetEmph.xml:

<b></b>

输出文件

目标文件1:

<p>This para is fine</p>

目标文件2:

<p><b>This</b> para is also fine</p>

目标文件3:

<p>This para is not fine</p>

Groovy代码

class Para {

    String getNode(Node sourceNode) {

        GPathResult targetNode = new XmlSlurper(false, false, false ).parse(new File("C:/targetPara.xml"))

        try {
            sourceNode.children().each { Node tag ->
                if(tag.name()=="emph") {
                    Emph childElement = new Emph()
                    String childNode = childElement.getNode(tag)

                    GPathResult child = new XmlSlurper(false, false ).parseText(childNode)
                    targetNode.appendNode(child)
                }
            }
        } catch(Exception e) {
            targetNode.appendNode(sourceNode.text())
        }
        return XmlUtil.serialize(targetNode)

    }
}

0 个答案:

没有答案