2014-12-03 4 views
0

Облицовка вопроса при получении значения атрибута xml с использованием строчного скрипта.Как получить атрибуты в Groovy через xpath

У меня есть CDATA xml. Я смог разобрать XML до CDATA. Но я не могу написать XPATH для атрибутов, присутствующих в узле. Пожалуйста, найдите образец ниже.

NodeName = товара, атрибут = ItemID

<Item ItemID="XXX-XXXXX"/> 

например,

<Item ItemID="abc-defg"/> 

заводной сценарий:

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'== [email protected]() 

Может кто-то пожалуйста, помогите мне в получении значения атрибута ItemID с помощью заводной сценария в SoapUI.

+0

Образец xml => Пункт ItemID = "abc-defg" /> –

+0

Вы пробовали документацию? http://www.soapui.org/Functional-Testing/working-with-cdata.html – SiKing

+0

Мы попробовали. Но, наш CDATA xml должен быть проанализирован, а затем получить значение атрибута, а не значение узла. –

ответ

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) 
} 
Смежные вопросы