使用Groovy XMLParser访问和更新通过命名空间限定的属性

使用Groovy XMLParser访问和更新通过命名空间限定的属性,xml,groovy,Xml,Groovy,也许有一种更简单的方法来获取属性,但我还没有看到它 def request=new XmlParser().parseText(“”)\ ''') //在ns中,请确保正确复制uri def msg=newgroovy.xml.Namespace('urn:some.Namespace','msg') def metadata=请求[msg.metadata][0] //只适合阅读 println metadata.attribute(msg.RequestGuid)/“” //写入必须通过属性

也许有一种更简单的方法来获取属性,但我还没有看到它

def request=new XmlParser().parseText(“”)\
''')
//在ns中,请确保正确复制uri
def msg=newgroovy.xml.Namespace('urn:some.Namespace','msg')
def metadata=请求[msg.metadata][0]
//只适合阅读
println metadata.attribute(msg.RequestGuid)/“”
//写入必须通过属性映射完成
metadata.attributes()[msg.RequestGuid]=“theuid”
println metadata.attribute(msg.RequestGuid)//theuid
新的XmlNodePrint().print(请求)
//
//  
//

太棒了,想弄明白@cfrick这个词让我抓狂
<msg:Request xmlns:msg="urn:some.namespace">
  <msg:Metadata msg:RequestGuid=""/>
</msg:Request>
def Request = new XmlParser().parseText(Utils.readFile(this.class, "templates/rq.xml"));
Node requestGuid = RetrieveRequest.attribute(msg.RequestGuid);
requestGuid.value = UUID.randomUUID();