Logo
IT Dienstleistungen

XML-Parser

getMessageType(String text)

Gibt den Namen des ersten Tags zurück, sodass eine schnelle Indentifizierung des vorliegenden XML-Strings erfolgen kann.

    /**
     * @param text - xml string
     * @return name of first tag as identifying the whole xml
     */
    static String getMessageType(String text) {
        int begin, end;
 
            begin   = text.indexOf("<");
            end     = text.indexOf(">");
        return text.substring(begin+1,end);
 
    }

getTagValue(String tagtosearch, String text)

Einfacher Parser, der den Wert zwischen einem öffnenden und einem schließenden tag als String zurückliefert. Tags dürfen nicht mehrfach vorkommen, es wird immer nur das erste Vorkommen ausgelesen.

Beim Aufruf wird ein Tag (ohne <>) erwartet, groß-/kleinbuchstaben werden nicht unterschieden. Der zweite Parameter ist ein String, der das XML-Listing enthält.

Wird der Tag nicht, oder nicht wohlgeformt gefunden, wird der String „-1“ geliefert

    /**
     *
     * @param tagtosearch value of which tag without any <>
     * @param text, xml string
     * @return String with content of the tag
     */
    static String getTagValue(String tagtosearch, String text) {
        int begin,end;
        int surround = 2; //chars around the tag
 
        String tag[] = new String[2];
        tag[0] = "<"+tagtosearch.toUpperCase()+">";
        tag[1] = "</"+tagtosearch.toUpperCase()+">";
 
        begin = text.toUpperCase().indexOf(tag[0])+ tagtosearch.length()+surround;
        end   = text.toUpperCase().indexOf(tag[1]);
 
 
 
 
        if (begin == -1 || end == -1) {
            return "-1";
        }
 
 
    return text.substring(begin, end);
    }

Schönheitsfehler:

    /**
     *
     * @param tagToSearch value of which tag without any <>
     * @param text, xml string
     * @return String with content of the tag
     */
    static String getTagValue(String tagToSearch , String xml) {
        int begin,end;
        int surround = 2; //chars around the tag
 
        //Return
        String tagValue;
 
        String tag[] = new String[2];
        tag[0] = "<"+tagToSearch .toUpperCase()+">";
        tag[1] = "</"+tagToSearch .toUpperCase()+">";
 
        begin = xml.toUpperCase().indexOf(tag[0])+ tagToSearch.length() + surround;
        end   = xml.toUpperCase().indexOf(tag[1]);
 
        // Nogo in Java!!!!!!!!!!!!
        if (begin == -1 || end == -1) {
            return "-1";
        }
 
        // Besser:
        if (begin == -1 || end == -1) {
        tagValue = "not common";
        }else{
        tagValue = xml.substring(begin, end);
        }
 
    return tagValue;
    }

Test mit:

String xml1 = "<UPDATE><USER_ID>000001</USER_ID><POS_X>33.45543</POS_X><POS_Y>4.54533</POS_Y>"+
              "<PERIMETER>32</PERIMETER><BLUR>5</BLUR><TYPE><PHOTO>true</PHOTO>" +
              "<VIDEO>false</VIDEO><audio>fALse</AUDiO><TEXT>true</TEXT></TYPE></UPDATE>";
 
 
System.out.println(XMLParse.getTagValue("pos_X", xml1));

Seiten-Werkzeuge