2017-09-06 71 views
0

Im有点困扰于XML。使用本地文件的Groovy MarkUpBuilder

<databaseChangeLog 

<changeSet author="John" id="JRIA" failOnError="true" runAlways="false"> 
    <sqlFile path="path.sql" relativeToChangelogFile="true" encoding="utf8" /> 
    <rollback> 
     <sqlFile path="rollback/path.sql" relativeToChangelogFile="true" encoding="utf8" /> 
    </rollback> 
</changeSet> 

我的例子:

import groovy.io.FileType 
import groovy.xml.* 


def dir = new File("C:\\Users\\John\\git\\changelogs\\version1\\db") 
def dir1 = new File("C:\\Users\\John\\git\\changelogs\\version1\\rollback") 

def sw = new StringWriter() 
def xml = new groovy.xml.MarkupBuilder(sw) 
xml.changeSet(author:"John", ID:"JIRA", failOnError: "True", runAlways: "false"){ 
    sqlFile(path:"From DIR", relativeToChangelogFile="true") 
    rollback(){ 
     sqlFile(path:"From DIR1", relativeToChangelogFile="true")} 
} 

如何使用dir并在XML sqlfile路径必须从那里通过使用dirdir1加载我有问题建立XML这样的SQLfiles夹取dir1以很好的方式生成该XML?而如何获取特定扩展名的文件(SQL)

回答

0

它是相当简单,只需使用.each

xml.dataBaseChangeLog(){ 
dir.eachFileRecurse(FileType.FILES) { file -> 
    changeSet(author:"John", ID:"JIRA", failOnError: "True", runAlways: "false") 
    sqlFile(path:file, relativeToChangelogFile="true")  
    rollback(){  
     sqlFile(path:file, relativeToChangelogFile="true") 
}}} 
相关问题