Java XML First Child Element getFirstChildText(Node parent)

Here you can find the source of getFirstChildText(Node parent)

Description

Get the first Text child of the given parent.

License

Apache License

Parameter

Parameter Description
parent Parent to search

Return

First child of parent

Declaration

public static Text getFirstChildText(Node parent) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright 2012 Geoscience Australia/* w  w w  .  ja v a  2  s  .com*/
 * 
 * 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.NodeList;
import org.w3c.dom.Text;

public class Main {
    /**
     * Get the first {@link Text} child of the given parent.
     * 
     * @param parent
     *            Parent to search
     * @return First {@link Text} child of parent
     */
    public static Text getFirstChildText(Node parent) {
        return getFirstChildImplementing(parent, Text.class);
    }

    /**
     * Get the first child node of parent that implements/subclasses the given
     * type.
     * 
     * @param parent
     *            Parent to search
     * @param nodeType
     *            Type of child to search for
     * @return First child of parent that conforms to the given nodeType
     */
    public static <N extends Node> N getFirstChildImplementing(Node parent, Class<N> nodeType) {
        return getNthChildImplementing(0, parent, nodeType);
    }

    /**
     * Get the index'th child node of parent that implements/subclasses the
     * given type.
     * 
     * @param index
     *            Child node index
     * @param parent
     *            Parent to search
     * @param nodeType
     *            Type of child to search for
     * @return index'th child of parent that conforms to the given nodeType
     */
    public static <N extends Node> N getNthChildImplementing(int index, Node parent, Class<N> nodeType) {
        if (parent == null) {
            return null;
        }
        NodeList children = parent.getChildNodes();
        if (children == null) {
            return null;
        }
        int count = 0;
        for (int i = 0; i < children.getLength(); i++) {
            Node node = children.item(i);
            if (nodeType.isAssignableFrom(node.getClass())) {
                if (count++ == index) {
                    @SuppressWarnings("unchecked")
                    N n = (N) node;
                    return n;
                }
            }
        }
        return null;
    }
}

Related

  1. getFirstChildOfTagName(Element elem, String name)
  2. getFirstChildOfType(final Element elParent, final String childTag)
  3. getFirstChildTag(Element el, String tag)
  4. getFirstChildText(@Nullable final Node aStartNode)
  5. getFirstChildText(Node aNode)
  6. getFirstChildTextByTagName(Element element, String tagName)
  7. getFirstChildTextContent(Node node)
  8. getFirstChildTextNodeValue(Node node)
  9. getFirstChildTextValue(Element parent, String childName)