Saturday 6 August 2011

Returns an array of text values of a child element.

  
import java.util.ArrayList;
import java.util.List;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

public class Utils {

  /**
   * <p>Returns an array of text values of a child element. Returns
   * <code>null</code> if there is no child element found.</p>
   *
   @param parent parent element
   @param name name of the child element
   @return text value
   */
  public static String[] getChildElementTextArr(Element parent, String name)
  {
      // Get all the elements
      List children = getChildElementsByName(parent, name);

      String str[] new String[children.size()];

      for(int i = 0; i < children.size(); i++) {
          Node child = (Nodechildren.get(i);

          StringBuffer buf = new StringBuffer();

          NodeList nodes = child.getChildNodes();
          for(int j = 0; j < nodes.getLength(); j++) {
              Node node = nodes.item(j);
              if(node.getNodeType() == Node.TEXT_NODE ||
                 node.getNodeType() == Node.CDATA_SECTION_NODE) {
                  Text text = (Textnode;
                  buf.append(text.getData().trim());
              }
          }

          str[i= buf.toString();
      }

      return str;
  }
  /**
   * <p>Returns a list of child elements with the given
   * name. Returns an empty list if there are no such child
   * elements.</p>
   *
   @param parent parent element
   @param name name of the child element
   @return child elements
   */
  public static List getChildElementsByName(Element parent, String name)
  {
      List elements = new ArrayList();

      NodeList children = parent.getChildNodes();

      for(int i = 0; i < children.getLength(); i++) {
          Node node = children.item(i);
          if(node.getNodeType() == Node.ELEMENT_NODE) {
              Element element = (Elementnode;
              if(element.getTagName().equals(name)) {
                  elements.add(element);
              }
          }
      }

      return elements;
  }

}

   
    
  

No comments:

Post a Comment