Java XML Node Move moveNodeDown(Node node)

Here you can find the source of moveNodeDown(Node node)

Description

Move an element prior to his previous sibling.

License

Open Source License

Parameter

Parameter Description
node the node to move down

Return

true if the element was moved

Declaration

public static boolean moveNodeDown(Node node) 

Method Source Code

//package com.java2s;
/*/*from  w  w w .jav  a2 s .  c o  m*/
 * ? Copyright IBM Corp. 2012
 * 
 * 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;

public class Main {
    /**
     * Move an element prior to his previous sibling.
     * If the element doesn't have a previous sibling, then nothing is moved
     * @param node the node to move down
     * @return true if the element was moved
     */
    public static boolean moveNodeDown(Node node) {
        Node parent = node.getParentNode();
        Node next = node.getNextSibling();
        if (next != null) {
            parent.removeChild(node);
            insertAfter(parent, node, next);
            return true;
        }
        return false;
    }

    /**
     * Inserts the node newChild after the existing child node refChild.
    * Inserts the node newChild after the existing child node refChild. If refChild is null, 
    * insert newChild at the end of the list of children.
    * If newChild is a DocumentFragment object, all of its children are inserted, 
    * in the same order, after refChild. If the newChild is already in the tree, 
    * it is first removed.
    * @return The node being inserted     
     */
    public static Node insertAfter(Node parent, Node newChild, Node refChild) {
        if (refChild != null) {
            Node next = refChild.getNextSibling();
            return parent.insertBefore(newChild, next);
        }
        return parent.insertBefore(newChild, refChild);
    }
}

Related

  1. moveDown(final Node currentN)
  2. moveNodeUp(Node node)