Utils.java Source code

Java tutorial

Introduction

Here is the source code for Utils.java

Source

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;
    }

}