Until now, we have already seen two examples of DOM Parser provided by JAXP:
In this tutorial, we will learn how to search the XML file for particular node in DOM Parser
Input File:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <Movies> <Movie Actor="Aamir Khan" Name="Lagaan" Type="BollyWood"> This is node description for Movie Lagaan </Movie> <Movie Actor="Aamir Khan" Name="Andaaz Apana Apna" Type="BollyWood" /> <Movie Actor="Salman Khan" Name="Dabang" Type="BollyWood" /> <Movie Actor="Salman Khan" Name="Wanted" Type="BollyWood" /> <Movie Actor="AKshay Kumar" Name="Mujhse Shadi karoge" Type="BollyWood" /> <Movies2011> <jan> Yamla Pagala Deewana </jan> </Movies2011> </Movies>
Java Sourcecode:
package com.G2.DOM; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class SearchXML { public static void main(String[] args) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); Document doc=builder.parse("ShivaSoft.xml"); NodeList nodes = doc.getElementsByTagName("Movies2011"); for(int i=0;i<nodes.getLength();i++) { printNodeInfo(nodes.item(i)); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } static void printNodeInfo(Node node) { System.out.println(" Name : " + node.getNodeName()); System.out.println(" Type : "+ nodeType(node.getNodeType())); if(node.getNodeType() == Node.ELEMENT_NODE) { Element e = (Element)node; System.out.println(e.getTextContent().trim()); } if(node.hasAttributes()) { NamedNodeMap rootAtt = node.getAttributes(); for(int i=0;i<rootAtt.getLength();i++) { System.out.println(" Name : "+rootAtt.item(i).getNodeName()); System.out.println(" Value : "+rootAtt.item(i).getNodeValue()); System.out.println(" Type : "+nodeType(rootAtt.item(i).getNodeType())); System.out.println("--------------------------"); } } } static String nodeType(short type) { switch(type) { case Node.ELEMENT_NODE: return "Element"; case Node.DOCUMENT_TYPE_NODE: return "Document type"; case Node.ENTITY_NODE: return "Entity"; case Node.ENTITY_REFERENCE_NODE: return "Entity reference"; case Node.NOTATION_NODE: return "Notation"; case Node.TEXT_NODE: return "Text"; case Node.COMMENT_NODE: return "Comment"; case Node.CDATA_SECTION_NODE: return "CDATA Section"; case Node.ATTRIBUTE_NODE: return "Attribute"; case Node.PROCESSING_INSTRUCTION_NODE: return "Attribute"; } return "Unidentified"; } }
Leave a Reply