Forum Discussion

max1965's avatar
max1965
Contributor
13 years ago

extraxt value

the following groovy script:

import com.eviware.soapui.support.xml.XmlUtils
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
xmlResponseHolder = groovyUtils.getXmlHolder("SAR TITAS TOIPDDECT#ResponseAsXML")
xmlResponseHolder.namespaces["ns"]="UdbCxInterface"
def count = xmlResponseHolder.getNodeValue ("count(//ns:ServiceProfile)")
def counter = count.toInteger()
if (counter !=0){
(1..<(counter+1)).each{
def id = xmlResponseHolder.getNodeValue("//ns:ServiceProfile["+it+"]//ns:PublicIdentity//ns:Identity")
def soft = xmlResponseHolder.getNodeValue("//ns:ServiceProfile["+it+"]//ns:InitialFilterCriteria//ns:ApplicationServer//ns:ServiceInfo//ns:service//ns:param/@value")
}
}

extract all the value sip:83.175.19.217 from the following XML response:

<ServerAssignmentAnswer xsi:schemaLocation="UdbCxInterface C:\ServerAssignementAnswer.xsd" xmlns="UdbCxInterface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<username>0803300000</username>
<error code="2001" message="SUCCESS"/>
<IMSSubscription>
<PrivateID>0803300000</PrivateID>
<ServiceProfile>
<PublicIdentity>
<firstLine>0</firstLine>
<Identity>0803300000</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>0</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="deltaProxyLocation">
<param name="deltaProxyLocation" value="sip:83.175.19.217"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>1</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="softswitchName">
<param name="softswitchName" value="83.175.6.4"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>2</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="indDistr">
<param name="NDST" value="3"/>
<param name="CIFDST" value="080"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>3</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="STS_SER"/>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
<ServiceProfile>
<PublicIdentity>
<firstLine>0</firstLine>
<Identity>0803300001</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>4</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="deltaProxyLocation">
<param name="deltaProxyLocation" value="sip:83.175.19.217"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>5</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="softswitchName">
<param name="softswitchName" value="83.175.6.4"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>6</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="indDistr">
<param name="NDST" value="3"/>
<param name="CIFDST" value="080"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>7</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="STS_SER"/>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
<ServiceProfile>
<PublicIdentity>
<firstLine>0</firstLine>
<Identity>0803300002</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>8</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="deltaProxyLocation">
<param name="deltaProxyLocation" value="sip:83.175.19.217"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>9</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="softswitchName">
<param name="softswitchName" value="83.175.6.4"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>10</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="indDistr">
<param name="NDST" value="3"/>
<param name="CIFDST" value="080"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>11</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="STS_SER"/>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
<ServiceProfile>
<PublicIdentity>
<firstLine>0</firstLine>
<Identity>0803300003</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>12</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="deltaProxyLocation">
<param name="deltaProxyLocation" value="sip:83.175.19.217"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>13</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="softswitchName">
<param name="softswitchName" value="83.175.6.4"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>14</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="indDistr">
<param name="NDST" value="3"/>
<param name="CIFDST" value="080"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>15</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="STS_SER"/>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
<ServiceProfile>
<PublicIdentity>
<firstLine>0</firstLine>
<Identity>0803300004</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>16</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="deltaProxyLocation">
<param name="deltaProxyLocation" value="sip:83.175.19.217"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>17</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="softswitchName">
<param name="softswitchName" value="83.175.6.4"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>18</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="indDistr">
<param name="NDST" value="3"/>
<param name="CIFDST" value="080"/>
</service>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>19</Priority>
<ApplicationServer>
<ServerName>ISSW</ServerName>
<ServiceInfo>
<service name="STS_SER"/>
</ServiceInfo>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
</IMSSubscription>
</ServerAssignmentAnswer>

How the script should be modified to extract the value 83.175.6.4 ?

  • f =
    """
    <ServerAssignmentAnswer xsi:schemaLocation="UdbCxInterface C:/ServerAssignementAnswer.xsd" xmlns="UdbCxInterface" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <username>0803300000</username>
    <error code="2001" message="SUCCESS"/>
    <IMSSubscription>
    <PrivateID>0803300000</PrivateID>
    <ServiceProfile>
    <PublicIdentity>
    <firstLine>0</firstLine>
    <Identity>0803300000</Identity>
    </PublicIdentity>
    <InitialFilterCriteria>
    <Priority>0</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="deltaProxyLocation">
    <param name="deltaProxyLocation" value="sip:83.175.19.217"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>1</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="softswitchName">
    <param name="softswitchName" value="83.175.6.4"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>2</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="indDistr">
    <param name="NDST" value="3"/>
    <param name="CIFDST" value="080"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>3</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="STS_SER"/>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    </ServiceProfile>
    <ServiceProfile>
    <PublicIdentity>
    <firstLine>0</firstLine>
    <Identity>0803300001</Identity>
    </PublicIdentity>
    <InitialFilterCriteria>
    <Priority>4</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="deltaProxyLocation">
    <param name="deltaProxyLocation" value="sip:83.175.19.217"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>5</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="softswitchName">
    <param name="softswitchName" value="83.175.6.4"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>6</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="indDistr">
    <param name="NDST" value="3"/>
    <param name="CIFDST" value="080"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>7</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="STS_SER"/>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    </ServiceProfile>
    <ServiceProfile>
    <PublicIdentity>
    <firstLine>0</firstLine>
    <Identity>0803300002</Identity>
    </PublicIdentity>
    <InitialFilterCriteria>
    <Priority>8</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="deltaProxyLocation">
    <param name="deltaProxyLocation" value="sip:83.175.19.217"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>9</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="softswitchName">
    <param name="softswitchName" value="83.175.6.4"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>10</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="indDistr">
    <param name="NDST" value="3"/>
    <param name="CIFDST" value="080"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>11</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="STS_SER"/>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    </ServiceProfile>
    <ServiceProfile>
    <PublicIdentity>
    <firstLine>0</firstLine>
    <Identity>0803300003</Identity>
    </PublicIdentity>
    <InitialFilterCriteria>
    <Priority>12</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="deltaProxyLocation">
    <param name="deltaProxyLocation" value="sip:83.175.19.217"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>13</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="softswitchName">
    <param name="softswitchName" value="83.175.6.4"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>14</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="indDistr">
    <param name="NDST" value="3"/>
    <param name="CIFDST" value="080"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>15</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="STS_SER"/>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    </ServiceProfile>
    <ServiceProfile>
    <PublicIdentity>
    <firstLine>0</firstLine>
    <Identity>0803300004</Identity>
    </PublicIdentity>
    <InitialFilterCriteria>
    <Priority>16</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="deltaProxyLocation">
    <param name="deltaProxyLocation" value="sip:83.175.19.217"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>17</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="softswitchName">
    <param name="softswitchName" value="83.175.6.4"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>18</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="indDistr">
    <param name="NDST" value="3"/>
    <param name="CIFDST" value="080"/>
    </service>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    <InitialFilterCriteria>
    <Priority>19</Priority>
    <ApplicationServer>
    <ServerName>ISSW</ServerName>
    <ServiceInfo>
    <service name="STS_SER"/>
    </ServiceInfo>
    </ApplicationServer>
    </InitialFilterCriteria>
    </ServiceProfile>
    </IMSSubscription>
    </ServerAssignmentAnswer>
    """

    ip = []

    xml = new XmlParser().parseText(f);
    xml.IMSSubscription.ServiceProfile.InitialFilterCriteria.ApplicationServer.ServiceInfo.service.param.each {
    if(it.'@value' == 'sip:83.175.19.217') {
    ip += it.'@value'
    }
    }

    log.info ip


    change
    if(it.'@value' == 'sip:83.175.19.217') {
    to
    if(it.'@value' == '83.175.6.4') {
    for the your second question.
  • Thanks, but I solve the problemi change the following line:

    def soft = xmlResponseHolder.getNodeValue("//ns:ServiceProfile["+it+"]//ns:InitialFilterCriteria[2]//ns:ApplicationServer//ns:ServiceInfo//ns:service//ns:param/@value")
  • to use your code, at least partially:


    xmlResponseHolder = groovyUtils.getXmlHolder("SAR TITAS TOIPDDECT#ResponseAsXML")

    ips = []

    xml = new XmlParser().parseText(xmlResponseHolder);
    xml.IMSSubscription.ServiceProfile.InitialFilterCriteria.ApplicationServer.ServiceInfo.service.param.each {
    if(it.'@value' == 'sip:83.175.19.217') {
    ip += it.'@value'
    }
    }

    ips.each {
    ip ->

    log.info ip
    //add your code for each ip here
    }