DOM parser for Java prints same value

LPW

New Member
I have this xml file\[code\]<Cdtr> <Nm>DEF Electronics</Nm> <PstlAdr> <AdrLine>Corn Exchange 5th Floor</AdrLine> <AdrLine>Mark Lane 55</AdrLine> <AdrLine>EC3R7NE London</AdrLine> <AdrLine>GB</AdrLine> </PstlAdr></Cdtr>\[/code\]I am trying to parse the xml, get leaf tags names(which has values) and their respective values using dom parser in Java. Following is the code i am using for that.\[code\]public class GetNodeValues { public static void main(String[] args) { try { String xmlFile = "C:/Users/Administrator/workspace/sample.xml"; File file = new File(xmlFile); if(file.exists()){ // Create a factory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Use the factory to create a builder DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); doc.getDocumentElement().normalize(); // Get a list of all elements in the document NodeList list = doc.getElementsByTagName("*"); System.out.println("XML Elements: "); for (int i=0; i<list.getLength(); i++) { // Get element Element element = (Element)list.item(i); String nodnam = element.getNodeName(); NodeList nl = doc.getElementsByTagName(nodnam); Element ele = (Element) nl.item(0); if (ele.getChildNodes().getLength() > 0) // then it has text String val = ele.getChildNodes().item(0).getNodeValue(); if (val.startsWith("\n")) { //Discarding pseudo nodes }else { System.out.println("Node: "+nodnam+" | Val: "+val); //print node names and values } } }}else{ System.out.print("File not found!");}}catch (Exception e) { System.exit(1); } }}\[/code\]I am getting the following result.\[code\]Node: AdrLine | Val: Corn Exchange 5th FloorNode: AdrLine | Val: Corn Exchange 5th FloorNode: AdrLine | Val: Corn Exchange 5th FloorNode: AdrLine | Val: Corn Exchange 5th Floor\[/code\]Please help. I am not understanding why its repeating the tag value. The expected output is\[code\]Node: AdrLine | Val: Corn Exchange 5th FloorNode: AdrLine | Val: Mark Lane 55Node: AdrLine | Val: EC3R7NE LondonNode: AdrLine | Val: GB\[/code\]
 
Back
Top