Re: XPath problems using JDom

Laurent Bihanic <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <[email protected]>
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.
_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.