Java XML Node Print printNode(Node node, int level)

Here you can find the source of printNode(Node node, int level)

Description

Prints information of the specified node.

License

Apache License

Parameter

Parameter Description
node the specified node.
level a number of indent.

Declaration

public static void printNode(Node node, int level) 

Method Source Code

//package com.java2s;
/*/* w  ww  .  jav  a2s .  com*/
 * $RCSfile: XMLUtil.java,v $ $Revision: 1.5 $ $Date: 2007/11/27 02:27:42 $
 * $AIST_Release: 5.0.0 $
 * $AIST_Copyright:
 *  Copyright 2003, 2004, 2005, 2006 Grid Technology Research Center,
 *  National Institute of Advanced Industrial Science and Technology
 *  Copyright 2003, 2004, 2005, 2006 National Institute of Informatics
 *  
 *  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.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /**
     * Prints information of the specified node.
     * 
     * @param node the specified node.
     * @param level a number of indent.
     */
    public static void printNode(Node node, int level) {
        if (node == null)
            return;
        switch (node.getNodeType()) {
        case Node.ATTRIBUTE_NODE:
            printAttribute(node, level);
            break;
        case Node.TEXT_NODE:
            printTextNode(node, level);
            break;
        default:
            printElement(node, level);
        }
    }

    /**
     * Prints attribute variables of the specified node.
     * 
     * @param node the specified node.
     * @param level a number of indent.
     */
    private static void printAttribute(Node node, int level) {
        for (int i = 0; i < level; i++) {
            System.out.print("  ");
        }
        System.out.println("<" + node.getNodeName() + " = " + node.getNodeValue() + ">");
    }

    /**
     * Prints variables of TEXT nodes.
     * 
     * @param node a parent node.
     * @param level a number of indent.
     */
    private static void printTextNode(Node node, int level) {
        String tmp = node.getNodeValue();
        tmp = tmp.trim();
        if (tmp.length() == 0) {
            return;
        }
        for (int i = 0; i < level; i++) {
            System.out.print("  ");
        }
        System.out.println("[" + tmp + "]");
    }

    /**
     * Prints elements of the specified node.
     * 
     * @param node the specified node.
     * @param level a number of indent.
     */
    private static void printElement(Node node, int level) {
        for (int i = 0; i < level; i++) {
            System.out.print("  ");
        }
        System.out.print("{" + node.getNamespaceURI() + "}");
        System.out.println(node.getNodeName());
        NamedNodeMap attrs = node.getAttributes();
        if (attrs != null) {
            for (int i = 0; i < attrs.getLength(); i++) {
                printNode(attrs.item(i), level + 1);
            }
        }

        NodeList children = node.getChildNodes();
        int n = children.getLength();
        for (int i = 0; i < n; i++) {
            Node child = children.item(i);
            printNode(child, level + 1);
        }
    }

    /**
     * Gets variable of the specified node.
     * 
     * @param node the specified node.
     * @return variable of the specified node.
     */
    public static String getNodeValue(Node node) {
        return node.getNodeValue();
    }
}

Related

  1. printNode(Node aNode, int aLevel)
  2. printNode(Node node)
  3. printNode(Node node)
  4. printNode(Node node)
  5. printNode(Node node)
  6. printNode(Node node, PrintStream out)
  7. printNode(Node node, StringWriter sw)
  8. printNodeBasics(Node node)
  9. printNodeIterator(NodeIterator iterator)