Java XML Child Element Text getChildText(Node parent, String childName)

Here you can find the source of getChildText(Node parent, String childName)

Description

Returns the text value of a given child element.

License

Apache License

Parameter

Parameter Description
parent the Element which contains the child
childName the (tag) name of the child

Return

the text value of the child or null if no child exists or the child does not have a text value

Declaration

static public String getChildText(Node parent, String childName) 

Method Source Code

//package com.java2s;
/*//  ww  w . j a  v  a 2s  . c  o m
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import org.w3c.dom.Element;

import org.w3c.dom.Node;

public class Main {
    /**
     * Returns the text value of a given child element.
     * 
     * @param parent the Element which contains the child
     * @param childName the (tag) name of the child
     * @return the text value of the child or null if no child exists or the child does not have a text value
     */
    static public String getChildText(Node parent, String childName) {
        Element elem = findFirstChild(parent, childName);
        if (elem == null)
            return null; // not Found!
        return getElementText(elem);
    }

    /**
     * Finds the first (direct) child Element with a given tag name.
     * 
     * @param parent the parent element below which to search the child
     * @param tagName the (tag) name of the desired child element
     * @return the child element if an element of that name existed, or null otherwise
     */
    static public Element findFirstChild(Node parent, String tagName) { // Child Element suchen
        if (parent == null)
            return null;
        Node node = parent.getFirstChild();
        while (node != null) { // Find all Element nodes
            if (node.getNodeType() == Node.ELEMENT_NODE) { // check name
                Element elem = (Element) node;
                if (tagName.equalsIgnoreCase(elem.getTagName()))
                    return elem; // found
            }
            node = node.getNextSibling();
        }
        return null; // not found!
    }

    /**
     * Retrieves the text of a given element.
     * 
     * @param elem the Element for which the text value is requested
     * @return the text value of that element or null if the element has no text value
     */
    static public String getElementText(Node elem) {
        String value = null;
        Node node = (elem != null) ? elem.getFirstChild() : null;
        // Find Text
        while (node != null) { // Find all Text nodes
            if (node.getNodeType() == Node.TEXT_NODE) { // set or append
                if (value == null)
                    value = node.getNodeValue();
                else
                    value += node.getNodeValue();
            }
            node = node.getNextSibling();
        }
        return value;
    }

    /**
     * Gets the first (direct) child Element.
     * 
     * @param parent the parent element below which to search the child
     * @return the first child element, or null otherwise
     */
    static public Element getFirstChild(Node parent) { // Child Element suchen
        if (parent == null)
            return null;
        Node node = parent.getFirstChild();
        while (node != null) { // Find all Element nodes
            if (node.getNodeType() == Node.ELEMENT_NODE)
                return (Element) node; // found
            node = node.getNextSibling();
        }
        return null; // not found!
    }
}

Related

  1. getChildText(final Node node)
  2. getChildText(final Node node)
  3. getChildText(Node node)
  4. getChildText(Node node)
  5. getChildText(Node node)
  6. getChildTextAsBoolean(Element parent, String childName, boolean defValue)
  7. getChildTextAsBooleanObj(Element parent, String childName, Boolean defValue)
  8. getChildTextByName(Element parent, String name)
  9. getChildTextByTagName(Element e, String tagName)