Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * @(#)$Id: XMLUtils.java 3619 2008-03-26 07:23:03Z yui $
 *
 * Copyright 2006-2008 Makoto YUI
 *
 * 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.
 * 
 * Contributors:
 *     Makoto YUI - initial implementation
 */

public class Main {
    public static String unescapeXML(String str) {
        if (str == null || str.length() == 0)
            return str;
        final StringBuilder buf = new StringBuilder(255);
        final int len = str.length();
        for (int i = 0; i < len; ++i) {
            final char c = str.charAt(i);
            if (c == '&') {
                final int pos = str.indexOf(';', i);
                if (pos == -1) {
                    buf.append('&');
                } else if (str.charAt(i + 1) == '#') { // &#unicode;
                    final int val = Integer.parseInt(str.substring(i + 2, pos), 16);
                    buf.append((char) val); // '&#xD;' -> '\r'
                    i = pos;
                } else {
                    final String substr = str.substring(i, pos + 1);
                    if (substr.equals("&amp;")) {
                        buf.append('&');
                    } else if (substr.equals("&lt;")) {
                        buf.append('<');
                    } else if (substr.equals("&gt;")) {
                        buf.append('>');
                    } else if (substr.equals("&quot;")) {
                        buf.append('"');
                    } else if (substr.equals("&apos;")) {
                        buf.append('\'');
                    } else {
                        throw new IllegalStateException(
                                "Invalid XML charactor `" + substr + "` is detected at " + i + " of " + str + '!');
                    }
                    i = pos;
                }
            } else {
                buf.append(c);
            }
        }
        return buf.toString();
    }
}