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("]] >");
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();
}
|