Java XML Child Element Text getChildText(final Element element, final String tagName)

Here you can find the source of getChildText(final Element element, final String tagName)

Description

Obtains the text value inside the first child element with the specified tag name.

License

Open Source License

Parameter

Parameter Description
element the root element.
tagName the child element tag name.

Return

the text inside the child element.

Declaration

public static String getChildText(final Element element, final String tagName) 

Method Source Code

//package com.java2s;
/*/*from   w  w  w .  j  a va 2  s  .c  o m*/
 * JaspertReports JSF Plugin Copyright (C) 2011 A. Alonso Dominguez
 *
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2.1 of the License, or (at
 * your option) any later version. This library is distributed in the hope
 * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * See the GNU Lesser General Public License for more details. You should have
 * received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA 02111-1307 USA A.
 *
 * Alonso Dominguez
 * alonsoft@users.sf.net
 */

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

public class Main {
    /**
     * Obtains the text value inside the first child element with the
     * specified tag name.
     *
     * @param element the root element.
     * @param tagName the child element tag name.
     * @return the text inside the child element.
     */
    public static String getChildText(final Element element, final String tagName) {
        final Element child = getChildElement(element, tagName);
        return getText(child);
    }

    /**
     * Obtains the first child element with the specified name.
     *
     * @param element root element.
     * @param tagName the child tag name.
     * @return the child element or null if not found.
     */
    public static Element getChildElement(final Element element, final String tagName) {
        return getChildElement(element, null, tagName);
    }

    /**
     * Obtains the first child element with the specified name inside
     * the specified namespace.
     *
     * @param element the root element.
     * @param namespace the namespace of the child element.
     * @param tagName the child local name.
     * @return the child element.
     */
    public static Element getChildElement(final Element element, final String namespace, final String tagName) {
        final NodeList childNodes = element.getChildNodes();
        final int numChildren = childNodes.getLength();

        for (int i = 0; i < numChildren; i++) {
            final Node childNode = childNodes.item(i);
            if (childNode.getNodeType() != Node.ELEMENT_NODE) {
                continue;
            }

            final Element childElement = (Element) childNode;
            String childTagName = childElement.getTagName();
            final String childPrefix = childElement.getPrefix();
            final String childNamespace = (childPrefix != null ? childElement.lookupNamespaceURI(childPrefix)
                    : null);

            if (namespace != null) {
                if (!namespace.equals(childNamespace)) {
                    continue;
                } else {
                    childTagName = childElement.getLocalName();
                }
            }

            if (!childTagName.equals(tagName)) {
                continue;
            }
            return childElement;
        }
        return null;
    }

    /**
     * Obtains the text of the specified element.
     *
     * @param element the text element.
     * @return the text value inside the element.
     */
    public static String getText(final Element element) {
        final Node node = element.getFirstChild();
        if (node != null && node.getNodeType() == Node.TEXT_NODE) {
            return node.getNodeValue().trim();
        }
        return null;
    }
}

Related

  1. getChildText(Element parent, String kidName)
  2. getChildText(Element parent, String name)
  3. getChildText(Element root, String childName)
  4. getChildText(Element tag, String childTagName)
  5. getChildText(final Element element, final String tagName)
  6. getChildText(final Element parentElem, final String childName)
  7. getChildText(final Node node)
  8. getChildText(final Node node)
  9. getChildText(Node node)