我肥皂剧回应:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetInventoriesResponse xmlns="http://xxx">
<GetInventoriesResult>
<NewDataSet xmlns="">
<Inventory attr1="1" attr2="101" />
<Inventory attr1="1" attr2="101" />
</NewDataSet>
</GetInventoriesResult>
</GetInventoriesResponse>
</soap:Body>
</soap:Envelope>
我想从//库存[0]中读取attr 1的值
我所做的是
import groovy.sql.Sql
import java.sql.DriverManager
import java.sql.Connection
import javax.sql.DataSource
import java.sql.Driver;
import java.util.*;
import java.text.*;
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def responseHolder = groovyUtils.getXmlHolder( messageExchange.responseContent )
responseHolder.namespaces['ns4']='http://xxx'
def CounGetInventoriesResponse=responseHolder["count(//Inventory)"]
def CompanyId=responseHolder.getNodeValue("//namf:Inventory[0]/@attr1")
log.info "att1"+CompanyId
companyid的值显示为空
我该如何解决这个问题。这里缺少什么
1条答案
按热度按时间lndjwyie1#
https://www.w3schools.com/xml/xpath_syntax.asp
检查 predicate 一节
Inventory[1]
是引用第一个元素的正确方式另一个问题-当默认名称空间在
NewDataSet
元素级别上重置为空时,您正试图访问名称空间为"//namf:Inventory
的Inventory
元素:<NewDataSet xmlns="">
这样应该行