import java.io.StringReader; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class XMLParser { final static String xmlStr = "" + "
" + " " + " Invisibility Cream" + " 14.50" + " Makes you invisible" + " " + " " + " Levitation Salve" + " 23.99" + " Levitate yourself for up to 3 hours per application" + " " + "
" + "
" + " " + " Blork and Freen Instameal" + " 4.95" + " A tasty meal in a tablet; just add water" + " " + " " + " Grob winglets" + " 3.56" + " Tender winglets of Grob. Just add priwater" + " " + "
" + "
"; public static void main(String[] args) { try { Document doc = DocumentBuilderFactory.newInstance() .newDocumentBuilder() .parse(new InputSource(new StringReader(xmlStr))); XPath xpath = XPathFactory.newInstance().newXPath(); // 1 System.out.println(((Node) xpath.evaluate( "/inventory/section/item[1]", doc, XPathConstants.NODE)) .getAttributes().getNamedItem("upc")); // 2, 3 NodeList nodes = (NodeList) xpath.evaluate( "/inventory/section/item/price", doc, XPathConstants.NODESET); for (int i = 0; i < nodes.getLength(); i++) System.out.println(nodes.item(i).getTextContent()); } catch (Exception e) { System.out.println("Error ocurred while parsing XML."); } } }