You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by sebb <se...@gmail.com> on 2007/09/03 13:58:38 UTC

Re: Unable to extract using XPath Extractor

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 <da...@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@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>
>

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


Re: Unable to extract using XPath Extractor

Posted by UBIK LOAD PACK Support <su...@ubikloadpack.com>.
Hello,
Have a look at:
http://jmeter.apache.org/usermanual/component_reference.html#XPath_Assertion


As a work-round for namespace limitations of the Xalan XPath parser
implementation on which JMeter is based, you can provide a Properties file
which contains mappings for the namespace prefixes:

   - prefix1=Full Namespace 1
   - prefix2=Full Namespace 2
   - ...

You reference this file in jmeter.properties (or user.properties <= BETTER)
file using the property:

   - xpath.namespace.config

If it doesn't work while it does for assertions, then open a BUGZILLA for
enhancement.

Regards
@ubikloadpack
http://ubikloadpack.com

On Tue, Jul 8, 2014 at 3:23 PM, Agusti Tomas <ag...@gmail.com> wrote:

> 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
>
>


-- 

Regards
Ubik Load Pack <http://ubikloadpack.com> Team
Follow us on Twitter <http://twitter.com/ubikloadpack>


Cordialement
L'équipe Ubik Load Pack <http://ubikloadpack.com>
Suivez-nous sur Twitter <http://twitter.com/ubikloadpack>

Re: Unable to extract using XPath Extractor

Posted by Agusti Tomas <ag...@gmail.com>.
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


Re: Unable to extract using XPath Extractor

Posted by sebb <se...@gmail.com>.
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 <se...@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 <se...@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 <da...@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@jakarta.apache.org
> > > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> > >
> > >
> >
>

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


Re: Unable to extract using XPath Extractor

Posted by sebb <se...@gmail.com>.
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 <se...@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 <da...@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@jakarta.apache.org
> > For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> >
> >
>

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