jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Agusti Tomas <agusti.to...@gmail.com>
Subject Re: Unable to extract using XPath Extractor
Date Tue, 08 Jul 2014 13:23:13 GMT
sebb <sebbaz <at> gmail.com> writes:

> 
> After some more investigations, I have found that XPath namespaces
> must be predeclared.
> 
> If the declaration is on the top-level element, then xalan does seem
> to pick up the definition (provided that namespaces are enabled, which
> is not currently the case in the XPath extractor).
> However namespaces that are declared on child elements are not
> available to XPath.
> 
> This is because there can be multiple declarations of the same
> namespace - and these can use different URIs.
> 
> It may be possible to enhance the XPath extractor to allow the user to
> provide a namespace declaration; this would simplify the writing of
> the XPath.
> 
> I.e. instead of
> 
> XPath:
> //*[local-name()='result' and
> namespace-uri()='http://biz.aol.com/schema/2006-12-18' ]
> 
> the idea is that you would be able to use:
> 
> Namespace declaration:
> ns    http://biz.aol.com/schema/2006-12-18
> 
> XPath:
> //ns:result
> 
> But this will have to wait for a future JMeter release.
> 
> On 03/09/07, sebb <sebbaz <at> gmail.com> wrote:
> > As a temporary work-round, you can use:
> >
> > //*[local-name()='result']
> >
> > but this would also match xx:result and yy:result
> >
> > Once namespaces are enabled, one can use:
> >
> > //*[local-name()='result' and
> > namespace-uri()='http://biz.aol.com/schema/2006-12-18' ]
> >
> > to restrict the search to the ns namespace.
> >
> > S
> > On 03/09/07, sebb <sebbaz <at> gmail.com> wrote:
> > > Check the jmeter log file - you'll probably see something like:
> > >
> > > WARN  - jmeter.extractor.XPathExtractor: error on
> > > XPathExtractor.xpathQuery(//ns:result)Prefix must resolve to a
> > > namespace: ns
> > >
> > > I tried
> > >
> > > //resultCode
> > >
> > > and that worked OK.
> > >
> > > I don't know enough about XPath to know why the namespace is not being
> > > resolved; it appears to be defined in the parent node.
> > >
> > > I checked the code, and the documentFactory was being called with
> > > namespace=false, but when I changed it to namespace=true it did not
> > > seem to make any difference.
> > >
> > > However, I then moved the xmlns:ns declaration to the soapenv:Envelope
> > > element, and it worked - provided that namespace=true (which is not
> > > the case currently).
> > >
> > > Perhaps the XPath implementation (xalan) is not able to resolve
> > > namespaces defined in nested elements?
> > >
> > > I need to look at this further.
> > >
> > > I'll raise a bug to be able to set namespace=true on the 
documentFactory.
> > >
> > > S.
> > > On 30/08/07, dasarih <dasarih <at> yahoo.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > I am unable to extract value of an element when it has a namespace 
prefix.
> > > > Can someone please give me a sample script on how to use "XPath 
Extractor"
> > > > and "XPath Assertion" for a WebService (SOAP) request/response.
> > > >
> > > > Here is the response from which I need to extract the value for 
"ns:result":
> > > > ***********************************
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > <soapenv:Envelope
> > > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-
ENV:Header
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ResponseHeader
> > > > xmlns="http://biz.aol.com/schema/header/2006-10">
<statusCode>200</statusCode><statusText>Ok</statusText>
<requestId>5498812049246984836--661430c8.114b6ef1996.-7a4e</requestId>
</ResponseHeader></SOAP-ENV:Header><SOAP-ENV:Body
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<ns:registerOfferResponse
> > > > xmlns:ns="http://biz.aol.com/schema/2006-12-18">
<ns:result>0</ns:result></ns:registerOfferResponse></SOAP-ENV:Body>
</soapenv:Envelope>
> > > > ***********
> > > >
> > > > I have tried different variations of XPATH Query and here are some I 
tried:
> > > >
> > > > *************
> > > > /soapenv:Envelope/SOAP-ENV:Body/ns:registerOfferResponse/ns:result
> > > >
> > > > *************
> > > > //ns:result
> > > >
> > > > *************
> > > > /*[local-name(.)="Envelope" and
> > > > namespace-uri(.)="http://schemas.xmlsoap.org/soap/envelope/"]/*
[local-name(.)="Body"
> > > > and
> > > > namespace-uri(.)="http://schemas.xmlsoap.org/soap/envelope/"][1]/*
[local-name(.)="registerOfferResponse"
> > > > and
> > > > namespace-uri(.)="http://biz.aol.com/schema/2006-12-18"][1]/*[local-
name(.)="result"
> > > > and namespace-uri(.)="http://biz.aol.com/schema/2006-12-18"]
[1]/text()
> > > > *************
> > > >
> > > > Your help is sincerely appreciated.
> > > >
> > > > Thank you.
> > > > --
> > > > View this message in context: http://www.nabble.com/Unable-to-
extract-using-XPath-Extractor-tf4354380.html#a12407599
> > > > Sent from the JMeter - User mailing list archive at Nabble.com.
> > > >
> > > >
> > > > --------------------------------------------------------------------
-
> > > > To unsubscribe, e-mail: jmeter-user-unsubscribe <at> 
jakarta.apache.org
> > > > For additional commands, e-mail: jmeter-user-help <at> 
jakarta.apache.org
> > > >
> > > >
> > >
> >
> 

Hi,

Has this been solved. In my case I am traying to extract the value of the 
node <ns2:enterpriseId>takataka</ns2:enterpriseId> from:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns3:createEnterpriseConfigurationDataResponse 
xmlns:ns2="http://example.com/datatype/configuration" 
xmlns:ns3="http://example.com/configuration">
         <return>
            <ns2:enterpriseId>takataka</ns2:enterpriseId>
         </return>
      </ns3:createEnterpriseConfigurationDataResponse>
   </soap:Body>
</soap:Envelope>

I tried several combinations of xpath queries without success, anybody who 
has an idea?

Regards,

Agusti





---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
For additional commands, e-mail: user-help@jmeter.apache.org


Mime
View raw message