Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/**
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
 *
 * The contents of this file are subject to the terms
 * of the Common Development and Distribution License
 * (the License). You may not use this file except in
 * compliance with the License.
 *
 * You can obtain a copy of the License at
 * https://opensso.dev.java.net/public/CDDLv1.0.html or
 * opensso/legal/CDDLv1.0.txt
 * See the License for the specific language governing
 * permission and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL
 * Header Notice in each file and include the License file
 * at opensso/legal/CDDLv1.0.txt.
 * If applicable, add the following below the CDDL Header,
 * with the fields enclosed by brackets [] replaced by
 * your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 *
 * $Id: XMLUtils.java,v 1.15 2009/10/19 18:19:20 asyhuang Exp $
 *
 */

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import java.io.ByteArrayOutputStream;

import java.util.HashSet;

import java.util.Set;

public class Main {
    /**
     * Method to get the value of "Value" node
     */
    public static String getValueOfValueNodeNoTrim(Node n) {
        return (getValueOfValueNodeNoTrim(n, true));
    }

    /**
     * Method to get the value of "Value" node
     * If <class>unescape<class> is set to false, xml escaped chars will not
     * be unescaped.
     */
    public static String getValueOfValueNodeNoTrim(Node n, boolean unescape) {
        NodeList textNodes = n.getChildNodes();
        Node textNode;
        StringBuffer value = new StringBuffer("");
        for (int j = 0; j < textNodes.getLength(); j++) {
            textNode = textNodes.item(j);
            String text = null;
            if (textNode.getNodeType() == Node.TEXT_NODE) {
                text = textNode.getNodeValue();
            } else if (textNode.getNodeType() == Node.ELEMENT_NODE) {
                text = print(textNode);
            }
            if (text != null && unescape) {
                value.append(unescapeSpecialCharacters(text));
            } else {
                value.append(text);
            }
        }
        return value.toString();
    }

    public static Set getChildNodes(Node parentNode, String childName) {
        Set retVal = new HashSet();
        NodeList children = parentNode.getChildNodes();
        for (int i = 0; i < children.getLength(); i++) {
            Node node = children.item(i);
            if (node.getNodeName().equalsIgnoreCase(childName)) {
                retVal.add(node);
            }
        }
        return (retVal);
    }

    /**
     * Print a Node tree recursively using UTF-8 encoding.
     * 
     * @param node
     *            A DOM tree Node
     * @return An xml String representation of the DOM tree.
     */
    public static String print(Node node) {
        return print(node, "UTF-8");
    }

    /**
     * Prints a Node tree recursively.
     * @param node A DOM tree Node
     * @param encoding character encoding
     * @return An xml String representation of the DOM tree.
     */
    public static String print(Node node, String encoding) {
        if (node == null) {
            return null;
        }

        try {
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer();
            transformer.setOutputProperty("omit-xml-declaration", "yes");
            transformer.setOutputProperty("encoding", encoding);
            DOMSource source = new DOMSource(node);
            ByteArrayOutputStream os = new ByteArrayOutputStream(2000);
            StreamResult result = new StreamResult(os);
            transformer.transform(source, result);
            return os.toString(encoding);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * Returns unescape special character text.
     *
     * @param text String to be unescaped.
     * @return unescape special character text.
     */
    public static String unescapeSpecialCharacters(String text) {
        text = text.replaceAll("&amp;", "&");
        text = text.replaceAll("&lt;", "<");
        text = text.replaceAll("&gt;", ">");
        text = text.replaceAll("&quot;", "\"");
        text = text.replaceAll("&apos;", "'");
        text = text.replaceAll("&#xA;", "\n");
        text = text.replaceAll("&#xD;", "\r");
        return text;
    }
}