[jdom-interest] XPath problems using JDom
Laurent Bihanic
laurent.bihanic at atosorigin.com
Mon Oct 22 09:01:27 PDT 2007
Check out your document : there is the space character before the http://...
in the default namespace declaraction. Remove it from the document or add it
to the namespace declaraction for the XPath object and it works.
Laurent
Bhave, Ameya a écrit :
> Hi,
>
> I have read some of the literature on this subject in the archives, and
> am still unable to sort my problem out. Basically I am trying to read an
> xml file using an xpath expression.
>
> My xml file looks like this:
>
> ------
> <?xml version="1.0" encoding="UTF-8"?>
> <OTA_AirLowFareSearchRQ EchoToken="0" MaxResponses="20"
> Mode="MasterPricer" SequenceNmbr="0" Target="Amadeus" xmlns="
> http://www.opentravel.org/OTA/2003/05"
> xmlns:helper="xalan://com.openjaw.rules.XSLHelper"
> xmlns:xalan="http://xml.apache.org/xalan <http://xml.apache.org/xalan>">
> <POS>
> <Source ISOCurrency="GBP" PseudoCityCode="1AC">
> <ns1:RequestorID
> ID="H6265/AAA/32835/2006/41000/OPENJAW/MERLIN" ID_Context="ABTA"
> xmlns:ns1=" http://www.opentravel.org/OTA/2003/05"
> xmlns:ns2="http://www.tui-uk.co.uk/OTA_EXT/2006" xmlns:ns3="
> http://www.openjawtech.com/2005"
> xmlns:ns4="http://www.opentravel.org/OTA/2002/08"/>
> </Source>
> </POS>
> <OriginDestinationInformation>
> <DepartureDateTime>2007-10-23T00:00:00.000+01:00</DepartureDateTime>
> <OriginLocation CodeContext="IATA" LocationCode="LGW"/>
> <DestinationLocation CodeContext="IATA" LocationCode="PMI"/>
> </OriginDestinationInformation>
> <OriginDestinationInformation>
> <DepartureDateTime>2007-10-30T00:00:00</DepartureDateTime>
> <OriginLocation CodeContext="IATA" LocationCode="PMI"/>
> <DestinationLocation CodeContext="IATA" LocationCode="LGW"/>
> </OriginDestinationInformation>
> <TravelerInfoSummary>
> <AirTravelerAvail>
> <PassengerTypeQuantity Code="ADT" Quantity="2"/>
> <PassengerTypeQuantity Code="CHD" Quantity="3"/>
> </AirTravelerAvail>
> </TravelerInfoSummary>
> </OTA_AirLowFareSearchRQ>
>
> ------
>
> And the code to access the info (using xpath) is:
>
> -------
> public static void getXPathValue(File file)
> {
> Document xmlDoc = getDocumentForFile(file);
>
> try
> {
> // XPath.setXPathClass(org.jaxen.jdom.JDOMXPath.class);
> XPath xPath =
> XPath.newInstance("/ota:OTA_AirLowFareSearchRQ/ota:OriginDestinationInformation");
>
> xPath.addNamespace("ota",
> "http://www.opentravel.org/OTA/2003/05"); //default ns
>
> xPath.addNamespace("helper",
> "xalan://com.openjaw.rules.XSLHelper");
> xPath.addNamespace("xalan", "http://xml.apache.org/xalan");
> xPath.addNamespace("ns2", " http://www.tui-uk.co.uk/OTA_EXT/2006");
> xPath.addNamespace("ns1", "http://www.openjawtech.com/2005");
> xPath.addNamespace("ns3", "
> http://www.opentravel.org/OTA/2002/08");
>
>
>
>
> List nodes = xPath.selectNodes(xmlDoc);
> System.out.println("Nodes = " + nodes);
>
> }
> catch (Exception e)
> {
> System.out.println("Error: " + e);
> e.printStackTrace(System.out);
> }
> }
> -------
>
> The problem is that the list I get is empty.
More information about the jdom-interest
mailing list