31846

Parsing XML file using Xpath in jdk1.4

I found the following easy solution to extracting values from XML file.

import java.io.IOException; import org.w3c.dom.*; import org.xml.sax.SAXException; import javax.xml.parsers.*; import javax.xml.xpath.*; public class XPathExample { public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException { DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); // never forget this! DocumentBuilder builder = domFactory.newDocumentBuilder(); Document doc = builder.parse("c:/temp/books.xml"); XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); XPathExpression expr = xpath.compile("//book[author='Neal Stephenson']/title/text()"); Object result = expr.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; for (int i = 0; i < nodes.getLength(); i++) { System.out.println(nodes.item(i).getNodeValue()); } } }

This uses xpath to extract all books title where the author is Neal Stephenson from the following xml

<inventory> <book year="2000"> <title>Snow Crash</title> <author>Neal Stephenson</author> <publisher>Spectra</publisher> <isbn>0553380958</isbn> <price>14.95</price> </book> <book year="2005"> <title>Burning Tower</title> <author>Larry Niven</author> <author>Jerry Pournelle</author> <publisher>Pocket</publisher> <isbn>0743416910</isbn> <price>5.99</price> </book> <book year="1995"> <title>Zodiac</title> <author>Neal Stephenson</author> <publisher>Spectra</publisher> <isbn>0553573862</isbn> <price>7.50</price> </book> <!-- more books... --> </inventory>

Now this works fine on JDK5 but i am using jdk 1.4 Can this be converted to the java 1.4 equivalent?

All i am trying to do is extract a value from an xml element. For example, in the above xml, i just want something that is the equivalent of getElementByTag("title").

Thanks

Answer1:

Quick google resulted in links like this and this which confirm that JAXP can be downloaded separately and run on top of JDK 1.4.2. You might run into configuration problems as mentioned in the apache link. Good luck!

Recommend

  • Java XPath API - get string representing subtree
  • How to read comments from XML file using DOM parser
  • slow construction of tree structure from XML
  • Parse file containing XML Fragments in Java
  • Issues with xpath in java
  • Java Xpath query
  • Parse XML string and build a list of strings
  • Must I move data dependency out of my Controllers (and into Factories)?
  • Illegal state exception while calling signout through GoogleApiClient
  • How do I use a countdown thread properly, how do I stop it prematurely?
  • Subviews for custom UIView with Nib (.xib) don't load?
  • Reading a file located in a jar as java.io.File object
  • Set text in TextView in custom dialog
  • Retrofit 2 error: NetworkOnMainThreadException
  • RxJava,Retrofit Error :Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
  • SOLR - Querying Facets, return N results per Facet
  • How to add plugin dependencies to pom.xml
  • Can I customize a Jackson ObjectMapper by adding a module?
  • Trying to get all column names in a table
  • How to set the navigation bar to the top in Table View?
  • UIPickerView without IB?
  • Cassandra NoClassDefFoundError: com/google/common/util/concurrent/AsyncFunction
  • SqlCommand back up Database
  • How load cv2.KeyPoint and Descriptors correctly on OpenCV 3 with Python 3?
  • why xml file does not aligned properly after append the string in beginning and end of the file usin
  • Chart.js Multiple dataset
  • How do I get HTML corresponding to current DOM tree?
  • JQuery Internet Explorer and ajaxstop
  • How to attach a node.js readable stream to a Sendgrid email?
  • JSON response opens as a file, but I can't access it with JavaScript
  • PostgreSQL Query without WHERE only ORDER BY and LIMIT doesn't use index
  • Paperclip, set path outside of rails root folder
  • Is there a javascript serializer for JSON.Net?
  • Java Scanner input dilemma. Automatically inputs without allowing user to type
  • Master page gives error
  • JSON with duplicate key names losing information when parsed
  • Change an a tag attribute in JavaScript based on screen width
  • Can't mass-assign protected attributes when import data from csv file
  • sending mail using smtp is too slow
  • How to Embed XSL into XML