我刚开始学习groovy。
我的第一个任务是创建一个XML文档并将其保存到光盘上的文件中。一切正常,直到我不想将document
存储到光盘(我最后使用Transformer进行输出)。
有没有办法使用XMLNodePrinter
将xml数据存储到文件中。这是我的代码(现在它只是创建一个空白文件):
// CREATING XML FILES WITH GROOVY:
def builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
def document = builder.newDocument();
def root = document.createElement("root_node");
// SIMPLE XML DATA
for(i in 0..5){
root.setAttribute("attr" + i, "val" + i);
def childElement = document.createElement("childNode");
childElement.setTextContent("" + i);
root.appendChild(childElement);
}
// printing the data to console
def myXMLFile = "myFirstXML.xml";
File f = new File(myXMLFile);
def writer = new FileWriter(f);
new XmlNodePrinter(new PrintWriter(writer)).print(root);
答案 0 :(得分:1)
您可以使用MarkupBuilder
?
import groovy.xml.*
new File( 'myFirstXML.xml' ).withWriter { w ->
def attributes = (0..5).collectEntries { [ "attr$it", "val$it" ] }
new MarkupBuilder( w ).root_node( attributes ) {
(0..5).each { i ->
childNode( "$i" )
}
}
}
创建一个文件myFirstXML.xml
,其中包含:
<root_node attr0='val0' attr1='val1' attr2='val2' attr3='val3' attr4='val4' attr5='val5'>
<childNode>0</childNode>
<childNode>1</childNode>
<childNode>2</childNode>
<childNode>3</childNode>
<childNode>4</childNode>
<childNode>5</childNode>
</root_node>