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 <[email protected]> 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: [email protected] > For additional commands, e-mail: [email protected] > > -- 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>
