Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2002-2005 IBM Corporation and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   IBM - Initial API and implementation
 *******************************************************************************/

import org.w3c.dom.CharacterData;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

public class Main {
    /**
     * Get the text that is associated with this element.
     * 
     * @param element an Element object.
     * @return the text that is associated with this element.
     */
    public static String getText(Element element) {
        String text = null;

        // Get first child element
        Node node = element.getFirstChild();

        // NodeList nodeList = element.getChildNodes();

        // int length = nodeList.getLength();

        // Process while there are nodes and the text hasn't been found
        while ((node != null) && (text == null)) {
            // If a text node or cdata section is found, then get text
            if ((node.getNodeType() == Node.TEXT_NODE) || (node.getNodeType() == Node.CDATA_SECTION_NODE)) {
                text = ((CharacterData) node).getData();
            }

            // Get next sibling
            node = node.getNextSibling();
        }

        if (text != null)
            text = text.trim();

        return text;
    }

    /**
     * Get the first child element from the input elment.
     * 
     * @param element an Element object.
     * @return the firstchild element.
     */
    public static Element getFirstChild(Element element) {
        // Return the first child element
        return findNextSibling(element.getFirstChild());
    }

    /**
     * Get the next sibling element.
     * 
     * @param element - an Element object.
     * @return the next sibling element.
     */
    public static Element getNextSibling(Element element) {
        // Return next sibling element
        return findNextSibling(element.getNextSibling());
    }

    /**
     * Find the next sibling element.
     * 
     * @param startNode XML start node.
     * @return the next sibling element.
     */
    protected static Element findNextSibling(Node startNode) {
        Node node = null;
        Element returnElement = null;

        // Find the next sibling element
        for (node = startNode; node != null && returnElement == null; node = node.getNextSibling()) {
            // If this node is an element node, then return it
            if (node.getNodeType() == Node.ELEMENT_NODE) {
                returnElement = (Element) node;
            }
        }

        // Return next sibling element
        return (Element) returnElement;
    }
}