Java XML Element Sibling getSiblingElement(Element e, String name)

Here you can find the source of getSiblingElement(Element e, String name)

Description

Gets the sibling Element with the indicated name.

License

Apache License

Parameter

Parameter Description
e Element to start search from.
name Name to search for in sibling.

Return

The sibling Element with the indicated name, or null if the Element could not be found.

Declaration

public static Element getSiblingElement(Element e, String name) 

Method Source Code

//package com.java2s;
/*//from  w  w  w . ja  v  a2  s. 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.
 *
 */

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

public class Main {
    /**
     * Gets 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 sibling Element with the indicated name, or null
     * if the Element could not be found.
     */
    public static Element getSiblingElement(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;
            }
        }

        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

  1. getPrecedingSiblings(Element element, String namespaceUri)
  2. getPreviousSiblingElement(Element elem)
  3. getPreviousSiblingElementByTagName(Element e, String name)
  4. getPrevSibling(Element e)
  5. getPrevSibling(Element element)
  6. getSiblingNamed(Element element, String name)