Если я ответ Soap как нижеСинтаксический мыло ответ - XML / XPATH (В SoapUI) (пространство имен в ответ SoapUI)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns0:SomeResponse xmlns:ns0="urn:ABC:EFG:HIJ:Some_WS">
<ns0:ID>6384</ns0: ID>
<ns0:Some_ID>10530</ns0: Some_ID >
<ns0:Status>SomeStatus</ns0:Status>
<ns0:Number>INT1037;INT1027;</ns0: Number>
</ns0:SomeResponse >
</soapenv:Body>
</soapenv:Envelope>
Как я могу получить Some_ID
значение. Я использую приведенный ниже код в SoapUI, чтобы получить значение Some_ID
.
...
def response = tstep.getPropertyValue("response");
def gutils = new com.eviware.soapui.support.GroovyUtils(context);
def holder = gutils.getXmlHolder("$response");
// define namespace
holder.namespaces["ns0"] = "http://www.w3.org/2001/XMLSchema-instance"
def val1 = holder.getNodeValue("//ns0:SomeResponse/ns0:Some_ID");
log.info(val1)
Но log.info
дает мне null
значение.
проверено. Это тоже работает. Но просто удивляясь, почему всюду я искал, люди просили объявить «пространства имен» в случае, если это ответ на мыло. – user1207289
Потому что большинство людей не понимают пространства имен в XML. Для * записи * XML они необходимы. Для * чтения * XML они являются необязательными. Для чтения простого XML, такого как ваш случай, они излишне усложняют ситуацию. – SiKing
@SiKing полностью согласен ':)' – albciff