Mega Code Archive

 
Categories / Java / XML
 

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 = (Node) children.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 = (Text) node;                   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 = (Element) node;               if(element.getTagName().equals(name)) {                   elements.add(element);               }           }       }       return elements;   } }