Java: Un utilitaire pour le déboguer XmlStreamReader

Author:

Java: Un utilitaire pour le déboguer XmlStreamReader
Download

/***** Code de MesExemples.com *******/
 /*   Copyright 2004 The Apache Software Foundation * *   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. */// Revised from xml beansimport javax.xml.stream.XMLStreamReader;/** * debugging utilities for XmlStreamReader */public final class XmlStreamUtils {  public static String printEvent(XMLStreamReader xmlr) {    StringBuffer b = new StringBuffer();    b.append("EVENT:[" + xmlr.getLocation().getLineNumber() + "]["        + xmlr.getLocation().getColumnNumber() + "] ");    b.append(getName(xmlr.getEventType()));    b.append(" [");    switch (xmlr.getEventType()) {    case XMLStreamReader.START_ELEMENT:      b.append("<");      printName(xmlr, b);      for (int i = 0; i < xmlr.getNamespaceCount(); i++) {        b.append(" ");        String n = xmlr.getNamespacePrefix(i);        if ("xmlns".equals(n)) {          b.append("xmlns="" + xmlr.getNamespaceURI(i) + """);        } else {          b.append("xmlns:" + n);          b.append("="");          b.append(xmlr.getNamespaceURI(i));          b.append(""");        }      }      for (int i = 0; i < xmlr.getAttributeCount(); i++) {        b.append(" ");        printName(xmlr.getAttributePrefix(i), xmlr.getAttributeNamespace(i), xmlr            .getAttributeLocalName(i), b);        b.append("="");        b.append(xmlr.getAttributeValue(i));        b.append(""");      }      b.append(">");      break;    case XMLStreamReader.END_ELEMENT:      b.append("</");      printName(xmlr, b);      for (int i = 0; i < xmlr.getNamespaceCount(); i++) {        b.append(" ");        String n = xmlr.getNamespacePrefix(i);        if ("xmlns".equals(n)) {          b.append("xmlns="" + xmlr.getNamespaceURI(i) + """);        } else {          b.append("xmlns:" + n);          b.append("="");          b.append(xmlr.getNamespaceURI(i));          b.append(""");        }      }      b.append(">");      break;    case XMLStreamReader.SPACE:    case XMLStreamReader.CHARACTERS:      // b.append(xmlr.getText());      int start = xmlr.getTextStart();      int length = xmlr.getTextLength();      b.append(new String(xmlr.getTextCharacters(), start, length));      break;    case XMLStreamReader.PROCESSING_INSTRUCTION:      String target = xmlr.getPITarget();      if (target == null)        target = "";      String data = xmlr.getPIData();      if (data == null)        data = "";      b.append("<?");      b.append(target + " " + data);      b.append("?>");      break;    case XMLStreamReader.CDATA:      b.append("<![CDATA[");      if (xmlr.hasText())        b.append(xmlr.getText());      b.append("]]&gt;");      break;    case XMLStreamReader.COMMENT:      b.append("<!--");      if (xmlr.hasText())        b.append(xmlr.getText());      b.append("-->");      break;    case XMLStreamReader.ENTITY_REFERENCE:      b.append(xmlr.getLocalName() + "=");      if (xmlr.hasText())        b.append("[" + xmlr.getText() + "]");      break;    case XMLStreamReader.START_DOCUMENT:      b.append("<?xml");      b.append(" version='" + xmlr.getVersion() + "'");      b.append(" encoding='" + xmlr.getCharacterEncodingScheme() + "'");      if (xmlr.isStandalone())        b.append(" standalone='yes'");      else        b.append(" standalone='no'");      b.append("?>");      break;    }    b.append("]");    return b.toString();  }  private static void printName(String prefix, String uri, String localName, StringBuffer b) {    if (uri != null &#038;& !("".equals(uri)))      b.append("['" + uri + "']:");    if (prefix != null &#038;& !("".equals(prefix)))      b.append(prefix + ":");    if (localName != null)      b.append(localName);  }  private static void printName(XMLStreamReader xmlr, StringBuffer b) {    if (xmlr.hasName()) {      String prefix = xmlr.getPrefix();      String uri = xmlr.getNamespaceURI();      String localName = xmlr.getLocalName();      printName(prefix, uri, localName, b);    }  }  public static String getName(int eventType) {    switch (eventType) {    case XMLStreamReader.START_ELEMENT:      return "START_ELEMENT";    case XMLStreamReader.END_ELEMENT:      return "END_ELEMENT";    case XMLStreamReader.PROCESSING_INSTRUCTION:      return "PROCESSING_INSTRUCTION";    case XMLStreamReader.CHARACTERS:      return "CHARACTERS";    case XMLStreamReader.SPACE:      return "SPACE";    case XMLStreamReader.COMMENT:      return "COMMENT";    case XMLStreamReader.START_DOCUMENT:      return "START_DOCUMENT";    case XMLStreamReader.END_DOCUMENT:      return "END_DOCUMENT";    case XMLStreamReader.ENTITY_REFERENCE:      return "ENTITY_REFERENCE";    case XMLStreamReader.ATTRIBUTE:      return "ATTRIBUTE";    case XMLStreamReader.DTD:      return "DTD";    case XMLStreamReader.CDATA:      return "CDATA";    case XMLStreamReader.NAMESPACE:      return "NAMESPACE";    }    return "UNKNOWN_EVENT_TYPE";  }  public static int getType(String val) {    if (val.equals("START_ELEMENT"))      return XMLStreamReader.START_ELEMENT;    if (val.equals("SPACE"))      return XMLStreamReader.SPACE;    if (val.equals("END_ELEMENT"))      return XMLStreamReader.END_ELEMENT;    if (val.equals("PROCESSING_INSTRUCTION"))      return XMLStreamReader.PROCESSING_INSTRUCTION;    if (val.equals("CHARACTERS"))      return XMLStreamReader.CHARACTERS;    if (val.equals("COMMENT"))      return XMLStreamReader.COMMENT;    if (val.equals("START_DOCUMENT"))      return XMLStreamReader.START_DOCUMENT;    if (val.equals("END_DOCUMENT"))      return XMLStreamReader.END_DOCUMENT;    if (val.equals("ATTRIBUTE"))      return XMLStreamReader.ATTRIBUTE;    if (val.equals("DTD"))      return XMLStreamReader.DTD;    if (val.equals("CDATA"))      return XMLStreamReader.CDATA;    if (val.equals("NAMESPACE"))      return XMLStreamReader.NAMESPACE;    return -1;  }}     

Code testé avec le fichier XML Suivant

<?xml version="1.0" encoding="windows-1252"?>
<!-- Edited by MesEXemple.com -->
<note>
	<to>Sakoba</to>
	<from>Adams</from>
	<heading>Rappel</heading>
	<body>Ne m'oubliez pas ce week-end!</body>
</note>

Cet article Java: Un utilitaire pour le déboguer XmlStreamReader est apparu en premier sur .