2017-09-06 69 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") 
}}} 
相關問題