2011-02-23 87 views
0

我正在寫這個在Smooks中運行並編輯XML的groovy腳本。我試圖將xsi:nil =「true」添加到空字段,我遇到的問題是xsi名稱空間聲明未添加到根字段。下面是我的嘗試:使用Groovy + Smooks向現有XML添加名稱空間聲明

element['@xsi:nil'] = 'true' 

def nil = doc.createAttributeNS("http://www.w3.org/2001/XMLSchema-instance", 'xsi:nil') 
nil.setValue('true'); 
element.setAttributeNodeNS(nil) 

這兩個將添加屬性,但不是NS聲明。

我也試過,但它會導致堆棧溢出錯誤:

def doc = element.getOwnerDocument(); 
doc.declareNamespace(xsi: 'http://www.example.org/xsi') 

這裏的鏈接到Smooks的文件:即在產生一個Groovy類中 http://www.smooks.org/mediawiki/index.php?title=V1.4:groovy

基本上運行腳本運行。

回答

2

嘗試格式化元素,如下圖所示:

"elementname"('xsi:nil' : 'true', 'xmlns:xsi' : 'http://www.w3.org/2001/XMLSchema-instance') 

這將返回下面的XML標籤:

<elementname xsi:nil='true' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' /> 

希望這能解決你的問題。

相關問題