Java XML Child Element Text getChildElementValue(Element parent, String name)

Here you can find the source of getChildElementValue(Element parent, String name)

Description

Gets the value for the child Element with the indicated name.

License

Apache License

Parameter

Parameter Description
parent Parent Element to start search from.
name Name to search for in child.

Return

The value for the child Element with the indicated name, or null if the Element could not be found.

Declaration

public static String getChildElementValue(Element parent, String name) 

Method Source Code

//package com.java2s;
/*/*from  ww  w. j ava  2s  .c o  m*/
 *  Copyright 2006-2015 WebPKI.org (http://webpki.org).
 *
 *  Licensed 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.Node;
import org.w3c.dom.Element;

public class Main {
    /**
     * Gets the value for the child Element with the indicated name. The child
     * searched for must exist one level below the parent, i.e. a real 
     * parent-child relation.
     * 
     * @param parent Parent Element to start search from.
     * @param name Name to search for in child.
     * @return The value for the child Element with the indicated name, or null
     * if the Element could not be found.
     */
    public static String getChildElementValue(Element parent, String name) {
        Element elem;

        if ((elem = firstChildElement(parent)) == null) {
            return null;
        }

        /* Check first child. */
        if (elem.getNodeName().equals(name)) {
            return elem.getFirstChild().getNodeValue();
        }

        /* Loop the rest. */
        while ((elem = nextSiblingElement(elem)) != null) {
            if (elem.getNodeName().equals(name)) {
                return elem.getFirstChild().getNodeValue();
            }
        }

        return null;
    }

    /**
     * Get the first child {@link org.w3c.dom.Element Element} of an {@link org.w3c.dom.Element Element}.
     * <p>{@link org.w3c.dom.Node Nodes} other than {@link org.w3c.dom.Element Elements} are ignored.
     * @param parent Parent
     * @return The first child {@link org.w3c.dom.Element Element} or null if none exists.
     */
    public static Element firstChildElement(Element parent) {
        Node n = parent.getFirstChild();

        if (n == null || n instanceof Element) {
            return (Element) n;
        } else {
            return nextSiblingElement(n);
        }
    }

    /**
     * Get the next sibling {@link org.w3c.dom.Element Element} of a {@link org.w3c.dom.Node Node}.
     * <p>{@link org.w3c.dom.Node Nodes} other than {@link org.w3c.dom.Element Elements} are ignored.
     * @param n Node
     * @return The first child {@link org.w3c.dom.Element Element} or null if none exists.
     */
    public static Element nextSiblingElement(Node n) {
        do {
            if ((n = n.getNextSibling()) == null) {
                return null;
            }
        } while (!(n instanceof Element));

        return (Element) n;
    }
}

Related

  1. getChildElementText(final Element parent, final String childName, final String defaultText)
  2. getChildElementText(Node node, String childName)
  3. getChildElementTextArr(Element parent, String name)
  4. getChildElementTextValue(Node parent, String name)
  5. getChildElementValue(Element p_rootElement, String p_elementName)
  6. getChildElementValue(Element parentElm, String elementName, String defaultValue)
  7. getChildElementValueByTagName(Element ele, String childEleName)
  8. getChildElementValueByTagName(Element ele, String childEleName)
  9. getChildElementValueByTagName(Element parentElement, String childTag)