Locate Elements by Tag Name in Java

Description

The following code shows how to locate Elements by Tag Name.

Example


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
//w  w  w.ja v a 2s. c  o  m
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;

public class Main {
  static public void main(String[] arg) {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setValidating(true);
    dbf.setNamespaceAware(true);
    dbf.setIgnoringElementContentWhitespace(true);

    Document doc = null;
    try {
      DocumentBuilder builder = dbf.newDocumentBuilder();
      InputSource is = new InputSource("personWithDTD.xml");
      doc = builder.parse(is);

      makeNamelist(doc);

    } catch (Exception e) {
      System.err.println(e);
    }
  }

  private static void makeNamelist(Document doc) {
    String names = null;
    Element root = doc.getDocumentElement();
    NodeList nameElements = root.getElementsByTagName("name");
    for (int i = 0; i < nameElements.getLength(); i++) {
      Element name = (Element) nameElements.item(i);
      Text nametext = (Text) name.getFirstChild();
      if (names == null) {
        names = nametext.getData();
      } else {
        names += ", " + nametext.getData();
      }
    }
    Element namelist = doc.createElement("names");
    Text namelisttext = doc.createTextNode(names);
    namelist.appendChild(namelisttext);
    root.insertBefore(namelist, root.getFirstChild());
  }
}


<folks>
    <person>
        <name>B D</name>
        <phone>999 555-8888</phone>
        <email>b@xyz.net</email>
    </person>
</folks>
   ]]>
</code>
<result><![CDATA[    
  <?xml version="1.0" standalone="yes"?>
<folks>
    <names>
        B D
    </names>
    <person>
        <name>
            B D
        </name>
        <phone>
            999 555-8888
        </phone>
        <email>
            b@xyz.net
        </email>
    </person>
</folks>




















Home »
  Java Tutorial »
    XML »




DOM
SAX