I need to create a xpath query that will return everything listed under availabilty element.
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetAvailableTimesResult xmlns="http://schemas.test.net/x/version2/2007/06/" resultcode="SearchOk">
<Availability>
<Result available="true" time="2011-10-17T17:00:00"/>
<Result available="true" time="2011-10-17T17:15:00"/>
<Result available="true" time="2011-10-17T17:30:00"/>
<Result available="true" time="2011-10-17T17:45:00"/>
<Result available="true" time="2011-10-17T18:00:00"/>
<Result available="true" time="2011-10-17T18:15:00"/>
<Result available="true" time="2011-10-17T18:30:00"/>
<Result available="true" time="2011-10-17T18:45:00"/>
<Result available="true" time="2011-10-17T19:00:00"/>
<Result available="true" time="2011-10-17T19:15:00"/>
<Result available="true" time="2011-10-17T19:30:00"/>
<Result available="true" time="2011-10-17T19:45:00"/>
<Result available="true" time="2011-10-17T20:00:00"/>
<Result available="true" time="2011-10-17T20:15:00"/>
<Result available="true" time="2011-10-17T20:30:00"/>
<Result available="true" time="2011-10-17T20:45:00"/>
<Result available="true" time="2011-10-17T21:00:00"/>
<Result available="true" time="2011-10-17T21:15:00"/>
<Result available="true" time="2011-10-17T21:30:00"/>
<Result available="true" time="2011-10-17T21:45:00"/>
<Result available="true" time="2011-10-17T22:00:00"/>
<Result available="true" time="2011-10-17T22:15:00"/>
<Result available="true" time="2011-10-17T22:30:00"/>
</Availability>
</GetAvailableTimesResult>
</soap:Body>
</soap:Envelope>
My xpath query returns malformed xpath expression error message, the query is as follows:
//xsi:[soap:body]//Availability
You need to define prefix for http://schemas.livebookings.net/Ingrid/version2/2007/06/
namespace in your XPath engine, e.g. prefix a
, then:
//a:Availability
It will select a:Availability
element.
Or you can use this XPath:
//*[local-name() = 'Availability']
I need to create a xpath query that will return everything listed under availabilty element
Use:
/*/Soap:Body/x:GetAvailableTimesResult/x:Availability/node()
Where in your program you have associated (registered) the "x"
prefix with the "http://schemas.livebookings.net/Ingrid/version2/2007/06/"
namespace.
This is the most FAQ in XPath.
Search for "XPath default namespace" to get more detailed explanation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With