如何解决如何使用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 举报,一经查实,本站将立刻删除。