  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | Subject: XPath problems using JDom | Subject: XPath problems using JDom 2007-10-22 - By Bhave, Ameya
Back 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 (See http://UTF-8.ora-code.com)"?> <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"> <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.
-- __ ____ ____ ____ ____ _____ Yours ever, Ameya Bhave (M) +44 07894080785 (H) +44 02476410217 (E) ameya@(protected)
Hi,<br><br>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.<br><br>My xml file looks like this: <br><br>-- ---<br><?xml version="1.0" encoding="UTF-8 (See http://UTF-8.ora-code.com)"? ><br><OTA_AirLowFareSearchRQ EchoToken="0" MaxResponses="20 " Mode="MasterPricer" SequenceNmbr="0" Target=" ;Amadeus" xmlns=" <a href="http://www.opentravel.org/OTA/2003/05">http://www.opentravel.org/OTA /2003/05</a>" xmlns:helper="xalan://com.openjaw.rules.XSLHelper" xmlns:xalan="<a href="http://xml.apache.org/xalan">http://xml.apache.org /xalan </a>"><br> <POS><br> <Source ISOCurrency="GBP" PseudoCityCode="1AC "><br> <ns1 :RequestorID ID="H6265/AAA/32835/2006/41000/OPENJAW/MERLIN" ID_Context ="ABTA" xmlns:ns1=" <a href="http://www.opentravel.org/OTA/2003/05">http://www.opentravel.org/OTA /2003/05</a>" xmlns:ns2="<a href="http://www.tui-uk.co.uk/OTA_EXT/2006 ">http://www.tui-uk.co.uk/OTA_EXT/2006</a>" xmlns:ns3=" <a href="http://www.openjawtech.com/2005">http://www.openjawtech.com/2005</a> " xmlns:ns4="<a href="http://www.opentravel.org/OTA/2002/08">http:/ /www.opentravel.org/OTA/2002/08</a>"/><br>   ; </Source> <br> </POS><br> < ;OriginDestinationInformation><br> < ;DepartureDateTime>2007-10-23T00:00:00.000+01:00</DepartureDateTime><br > <OriginLocation CodeContext="IATA " LocationCode="LGW"/> <br> <DestinationLocation CodeContext= "IATA" LocationCode="PMI"/><br> < /OriginDestinationInformation><br> < ;OriginDestinationInformation><br> < ;DepartureDateTime>2007-10-30T00:00:00</DepartureDateTime> <br> <OriginLocation CodeContext=" ;IATA" LocationCode="PMI"/><br> <DestinationLocation CodeContext="IATA" LocationCode=" ;LGW"/><br> </OriginDestinationInformation> <br> <TravelerInfoSummary><br> <AirTravelerAvail><br> <PassengerTypeQuantity Code="ADT" Quantity=" ;2"/><br> < ;PassengerTypeQuantity Code="CHD" Quantity="3"/> <br> </AirTravelerAvail><br> </TravelerInfoSummary><br></OTA_AirLowFareSearchRQ><br> <br>-- ---<br clear="all"><br>And the code to access the info (using xpath) is: <br><br>-- ----<br>public static void getXPathValue(File file) <br> {<br> Document xmlDoc = getDocumentForFile(file);<br><br> try<br> {<br>// XPath.setXPathClass(org.jaxen.jdom.JDOMXPath.class);<br>   ; XPath xPath = XPath.newInstance("/ota:OTA _AirLowFareSearchRQ/ota:OriginDestinationInformation"); <br> xPath.addNamespace(" ;ota", "<a href="http://www.opentravel.org/OTA/2003/05">http://www .opentravel.org/OTA/2003/05</a>"); //default ns<br><br> xPath.addNamespace("helper", " ;xalan://com.openjaw.rules.XSLHelper"); <br> xPath.addNamespace(" ;xalan", "<a href="http://xml.apache.org/xalan">http://xml.apache.org /xalan</a>");<br> xPath .addNamespace("ns2", "<a href="http://www.tui-uk.co.uk/OTA_EXT /2006"> http://www.tui-uk.co.uk/OTA_EXT/2006</a>");<br> xPath.addNamespace("ns1", "<a href="http ://www.openjawtech.com/2005">http://www.openjawtech.com/2005</a>");<br> xPath.addNamespace("ns3 ", " <a href="http://www.opentravel.org/OTA/2002/08">http://www.opentravel.org/OTA /2002/08</a>"); <br><br><br><br><br> List nodes = xPath.selectNodes(xmlDoc );<br> System.out.println(" ;Nodes = " + nodes); <br><br> }<br> catch (Exception e)<br> {<br> System.out.println("Error: " + e);<br> e.printStackTrace(System.out); <br> }<br>}<br>-- ----<br><br>The problem is that the list I get is empty. <br><br>-- <br>__ ____ ____ ____ ____ _____<br>Yours ever,<br>Ameya Bhave<br>(M ) +44 07894080785<br>(H) +44 02476410217<br>(E) <a href= "mailto:ameya@(protected)">ameya@(protected)</a>
__ ____ ____ ____ ____ ____ ____ ____ ____ ____ To control your jdom-interest membership: http://www.jdom.org/mailman/options/jdom-interest/youraddr@(protected)
|
|
 |