面对使用groovy脚本获取xml属性值的问题。
我有一个CDATA xml。我能够将XML解析到CDATA。但是,我无法为节点中存在的属性编写XPATH。请在下面找到示例。
NodeName = Item,attribute = ItemID
<Item ItemID="XXX-XXXXX"/>
e.g。
<Item ItemID="abc-defg"/>
groovy脚本:
import com.eviware.soapui.support.XmlHolder
respXmlHolder = new XmlHolder(messageExchange.getResponseContentAsXml())
respXmlHolder.declareNamespace("ns1","http://example.com/types")
CDATAXml = respXmlHolder.getNodeValue("//ns1:Response[1]/result[1]")
log.info(CDATAXml)
CDATAXmlHolder = new XmlHolder(CDATAXml)
Item = CDATAXmlHolder.getNodeValue("//ItemID")
log.info("Item = $Item")
assert '397-0109'== Item.@ItemID.text()
有人可以帮助我使用SOAPUI中的groovy脚本获取ItemID属性的值。
答案 0 :(得分:0)
我试过这种方式。有效。谢谢。
import groovy.xml.MarkupBuilder
import groovy.lang.*
import java.util.*
import com.eviware.soapui.support.UISupport
def xmlStr = """<OrderLines>
<OrderLine>
<Item ItemId='397-0109'/>
<Item ItemId='125-5449'/>
<Item ItemId='523-7449'/>
</OrderLine>
</OrderLines>"""
def xmlParse = new XmlParser().parseText( xmlStr )
def ItemId = [:]
println "Write out the Attributes for each node"
xmlParse.OrderLine.Item.each {
ItemId = it.attributes()
log.info(ItemId)
}