Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * For license please see accompanying LICENSE.txt file (available also at http://www.xmlpull.org/).
 * According to www.xmlpull.org, this code is in the public domain.
 */

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

public class Main {
    /**
     * Return everything past PITarget and S from Processing Instruction (PI) as defined in XML 1.0 Section 2.6
     * Processing Instructions <code>[16] PI ::= '&lt;?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'</code>
     * 
     * <p>
     * <b>NOTE:</b> if there is no PI data it returns empty string.
     */
    public static String getPIData(final XmlPullParser pp) throws IllegalStateException {
        int eventType;

        try {
            eventType = pp.getEventType();
        } catch (final XmlPullParserException x) {
            // should never happen ...
            throw new IllegalStateException("could not determine parser state: " + x + pp.getPositionDescription());
        }

        if (eventType != XmlPullParser.PROCESSING_INSTRUCTION)
            throw new IllegalStateException("parser must be on processing instruction and not "
                    + XmlPullParser.TYPES[eventType] + pp.getPositionDescription());

        final String PI = pp.getText();
        int pos = -1;
        for (int i = 0; i < PI.length(); i++) {
            if (isS(PI.charAt(i))) {
                pos = i;
            } else if (pos > 0) {
                return PI.substring(i);
            }
        }

        return "";
    }

    /**
     * Return true if chacters is S as defined in XML 1.0 <code>S ::=  (#x20 | #x9 | #xD | #xA)+</code>
     */
    private static boolean isS(final char ch) {
        return (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t');
    }
}