微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用MarkupBuilder将xml写入文件

如何解决如何使用MarkupBuilder将xml写入文件

| 我在Groovy中使用MarkupBuilder创建了一个xml,但是如何将其写入项目目录
E:\\tomcat 5.5\\webapps\\csm\\include\\xml
中的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])

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

解决方法

        不要使用
StringWriter
,而要使用
FileWriter
。还要使用系统属性“ 6”来获取Tomcat的homepath。
def writer = new FileWriter(new File(System.getProperty(\"catalina.base\") + \"/webapps/csm/include/xml/yourfile.xml\"))
但是请注意,这不是保存运行时生成的文件的最佳位置。每次您重新部署
.war
文件时,它们都会被删除。     ,        不要忽略上面的正确答案,但是您可以使代码多
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] )
      }
    }
  }
}
    ,        怎么样:
new File(\'E:\\tomcat 5.5\\webapps\\csm\\include\\xml\\Foo.xml\') << writer.toString()
不知道您是否需要在windoze上将转义
\\\\
文件路径加倍...     ,        我没有使用
StringWriter
,而是使用了
FileWriter
至于我走过的路
def writer = new FileWriter(\"../webapps/csm/include/xml/data.xml\" )
终于这工作了:)     ,        
//class writer to write file
def writer = new StringWriter();
//builder xml
def xmlCreated = new MarkupBuilder(writer);
//file where will be write the xml
def fileXmlOut = new File(\"C:\\\\Users\\\\example\\\\Desktop\\\\example\\\\test.xml\");

//method MarkupBuilder to xml       
xmlCreated.mkp.xmlDeclaration(version: \"1.0\",encoding: \"utf-8\");
xmlCreated.playlist() {
    list() {
        //xml = your file xml parse
        name xml.list.name.text()
    }
    eventlist () {
        event(type: example.eventlist.@type)                   
    }
}
//writing xml in file
fileXmlOut << writer.toString();
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。