如何使用MarkupBuilder将xml写入文件

abi*_*964 2 java xml groovy markupbuilder

我在groovy中使用MarkupBuilder创建了一个xml但是如何将它写入我的项目目录中的xml文件中 E:\tomcat 5.5\webapps\csm\include\xml

def writer = new StringWriter()
    def xml = new MarkupBuilder(writer)
    String[] splitted

    xml.rows()
    {   for(int i=0;i<lines.length-1;i++){
            row()
            {
                for(int j=0;j<lines[i].length();j++)
                {
                     splitted= lines[i].split(',');
                }
                name(splitted[0])
                email(splitted[1])

            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里println writer.toString()打印我的整个xml内容,但我需要它在我的tomcat项目xml目录中的文件中

tim*_*tes 6

不采取从上面的正确答案了,但你可以让你的代码更多Groovy:

new File( "${System.properties['catalina.base']}/webapps/csm/include/xml/yourfile.xml" ).withWriter { writer ->
  def xml = new MarkupBuilder( writer )

  xml.rows {
    lines.each { line ->
      row {
        def splitted = line.split( ',' )
        name( splitted[0] )
        email( splitted[1] )
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)


Hun*_*apa 5

而不是使用StringWriter,使用FileWriter.还可以使用system属性catalina.base获取Tomcat主路径.

def writer = new FileWriter(new File(System.getProperty("catalina.base") + "/webapps/csm/include/xml/yourfile.xml"))
Run Code Online (Sandbox Code Playgroud)

但请注意,它不是保存运行时生成的文件的最佳位置.每次重新部署.war文件时都会删除它们.