使用groovy在XML响应中查找带有自定义字段的html元素

时间:2015-10-02 17:56:15

标签: html xml groovy soapui

在SOAP UI中,XML响应我有一个如下元素:

<option selected="selected" value="5">Premium</option>

我正在尝试在XML响应中找到具有自定义字段值的元素。  获得价值&#34;选择&#34;选择&#39;元素的属性值=&#34; 5&#34;和text = Premium。

我正在做类似下面的事情。但它给我一个[]回复。

def sortByValue= resp.depthFirst().option.findAll{it.@selected=="selected" && it.text()=='Premium'}
log.info sortByValue

 def sortByValue= resp.depthFirst().option.findAll{it.@value=="5" && it.text()=='Premium'}
log.info sortByValue

给我回复

  [option[attributes={value=5}; value=[Premium]]]

我无法获得所选

的值

有人可以让我知道如何使这项工作?

2 个答案:

答案 0 :(得分:1)

类似于这就足够了吗?

def xml = '''\
<div>
    <select>
        <option value="1">Regular</option>
        <option selected="selected" value="5">Premium</option>
        <option value="7">Gold</option>    
    </select>
</div>
'''

def parsed = new XmlParser().parseText(xml)
parsed.'**'.option.findAll { 
    it.'@selected' == 'selected' && it.text() == 'Premium' 
}

答案 1 :(得分:0)

试试这个......:)

 def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)

        def holder =  groovyUtils.getXmlHolder("TestStepName#Response")
        def optionNode = holder.getDomNode("//option")
        def optionNodeAttributes = optionNode.getAttributes()

        log.info optionNodeAttributes.getNamedItem("selected").getNodeValue()
        log.info optionNodeAttributes.getNamedItem("value").getNodeValue()
        log.info holder.getNodeValue("//option")