2016-06-28 55 views
2

更改的XML元素/標籤的名字我有一個看起來像這樣使用的XmlSlurper或XmlParser的

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Samples> 
    <Sample> 
    <Name> 
     Sample1 
    </Name> 
    <Date> 
     01/20/2016 
    </Date> 
    </Sample> 
</Samples> 

我想簡單的標籤名從「樣品」到「SampleList」更改XML。我將如何做到這一點?

回答

1

replaceNode可以用於重命名,如下節點:

def xml = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Samples> 
    <Sample> 
    <Name> 
     Sample1 
    </Name> 
    <Date> 
     01/20/2016 
    </Date> 
    </Sample> 
</Samples> 
''' 

def result = new XmlSlurper().parseText(xml) 

result.replaceNode { 
    'SampleList' it.children() 
} 

groovy.xml.XmlUtil.serialize(result) 

replaceNode需要封口方法參數,它代表一種助洗劑。特別是在這種情況下,節點被替換而不是附加到主文檔。 'SampleList' it.children()'SampleList(it.children())'類似。

解析的xml的根元素是Samples(需要更換),replaceNode直接在result上完成。

+0

hi @dmahapatro,你能解釋一下replaceNode是如何工作的嗎?因爲你沒有指定你想要替換的名字,但代碼工作。謝謝:) – user3714598

+0

@ user3714598查看更新的答案。 – dmahapatro