Gets the value for the sibling XML Element with the indicated name. - Java XML

Java examples for XML:XML Element Value

Description

Gets the value for the sibling XML Element with the indicated name.

Demo Code

/*//from  w w w .ja v a2s. c om
 *  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.
 *
 */
//package com.java2s;

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

public class Main {
    /**
     * Gets the value for the sibling Element with the indicated name. The sibling
     * searched for must come after the given Element e.
     * 
     * @param e Element to start search from.
     * @param name Name to search for in sibling.
     * @return The value of the sibling Element with the indicated name, or null
     * if the Element could not be found.
     */
    public static String getSiblingValue(Element e, String name) {
        Element elem = e;

        /* 
         * Loop until we find the correct element or until we run 
         * out of siblings. 
         */
        while ((elem = nextSiblingElement(elem)) != null) {
            if (elem.getNodeName().equals(name)) {
                return elem.getFirstChild().getNodeValue();
            }
        }

        return null;
    }

    /**
     * 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 Tutorials