在Groovy中创建动态XML标记
我正在使用Groovy MarkupBuilder创建一个XML文件。当我有静态标签时,我可以做得很好,就像这样在Groovy中创建动态XML标记,groovy,Groovy,我正在使用Groovy MarkupBuilder创建一个XML文件。当我有静态标签时,我可以做得很好,就像这样 def userCreationNumber = "12530"; def userCreationDate = "02/02/2020"; def userCreationAuthor = "admin"; Creation{ Revision(userCreationNumber) Date(userCreationDate ) Author(userCr
def userCreationNumber = "12530";
def userCreationDate = "02/02/2020";
def userCreationAuthor = "admin";
Creation{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
<Creation>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Creation>
def actionArray = new ArrayList();
actionArray.add("Added");
actionArray.add("Removed");
actionArray.add("Disabled");
actionArray.each{ action ->
action(**this is a variable**){
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
}
<Added>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Added>
<Removed>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Removed>
<Disabled>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Disabled>
这将创建如下的XML
def userCreationNumber = "12530";
def userCreationDate = "02/02/2020";
def userCreationAuthor = "admin";
Creation{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
<Creation>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Creation>
def actionArray = new ArrayList();
actionArray.add("Added");
actionArray.add("Removed");
actionArray.add("Disabled");
actionArray.each{ action ->
action(**this is a variable**){
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
}
<Added>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Added>
<Removed>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Removed>
<Disabled>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Disabled>
这与:
Added{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
Removed{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
Disabled{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
这将创建如下的XML
def userCreationNumber = "12530";
def userCreationDate = "02/02/2020";
def userCreationAuthor = "admin";
Creation{
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
<Creation>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Creation>
def actionArray = new ArrayList();
actionArray.add("Added");
actionArray.add("Removed");
actionArray.add("Disabled");
actionArray.each{ action ->
action(**this is a variable**){
Revision(userCreationNumber)
Date(userCreationDate )
Author(userCreationAuthor)
}
}
<Added>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Added>
<Removed>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Removed>
<Disabled>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Disabled>
12530
02/02/2020
管理员
12530
02/02/2020
管理员
12530
02/02/2020
管理员
您可以使用GString插值:
import groovy.xml.*
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
def userCreationNumber = "12530"
def userCreationDate = "02/02/2020"
def userCreationAuthor = "admin"
def actionArray = [ "Added", "Removed", "Disabled" ]
xml.records() {
actionArray.each{ action ->
"$action"{
Revision( userCreationNumber )
Date( userCreationDate )
Author( userCreationAuthor )
}
}
}
writer
输出
<records>
<Added>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Added>
<Removed>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Removed>
<Disabled>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Disabled>
</records>
12530
02/02/2020
管理员
12530
02/02/2020
管理员
12530
02/02/2020
管理员
还要注意,您需要一个根元素。您可以使用GString插值:
import groovy.xml.*
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
def userCreationNumber = "12530"
def userCreationDate = "02/02/2020"
def userCreationAuthor = "admin"
def actionArray = [ "Added", "Removed", "Disabled" ]
xml.records() {
actionArray.each{ action ->
"$action"{
Revision( userCreationNumber )
Date( userCreationDate )
Author( userCreationAuthor )
}
}
}
writer
输出
<records>
<Added>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Added>
<Removed>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Removed>
<Disabled>
<Revision>12530</Revision>
<Date>02/02/2020</Date>
<Author>admin</Author>
</Disabled>
</records>
12530
02/02/2020
管理员
12530
02/02/2020
管理员
12530
02/02/2020
管理员
还要注意,您需要一个根元素