stax-stream reader
所需包:stax-1.2.0.jar、jsr173_07_api.jar、jsr173_07_ri.jar
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
public class WellFormPrint {
public static void main(String[] args) {
int top = 0;
long start = System.currentTimeMillis();
try {
XMLInputFactory inputFactory =
XMLInputFactory.newInstance();
InputStream input = new FileInputStream(
new File("Players.xml"));
MXParser xmlStreamReader = (MXParser)inputFactory
.createXMLStreamReader(input);
int event = xmlStreamReader.getEventType();
while (true) {
switch (event) {
case XMLStreamConstants.START_ELEMENT:
top++;
for(int i=0; i<top-1; i++)
echo(" ");
echo("<" + xmlStreamReader.getLocalName());
for (int i = 0, n =
xmlStreamReader.getAttributeCount();
i < n; ++i)
echo(" " + xmlStreamReader.getAttributeName(i)
+ "="
+ xmlStreamReader.getAttributeValue(i));
echo(">\n");
break;
case XMLStreamConstants.CHARACTERS:
if (xmlStreamReader.isWhiteSpace())
break;
for(int i=0; i<top; i++)
echo(" ");
echo(xmlStreamReader.getText() + "\n");
break;
case XMLStreamConstants.END_ELEMENT:
for(int i=0; i<top-1; i++)
echo(" ");
echo("</" + xmlStreamReader.getLocalName()
+ ">\n");
top--;
break;
case XMLStreamConstants.COMMENT:
for(int i=0; i<top; i++)
echo(" ");
echoln("<!--"
+ xmlStreamReader.getText() + "-->");
}
if (!xmlStreamReader.hasNext())
break;
event = xmlStreamReader.next();
}
} catch (Exception e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
echo("\ntotal : " + (end - start));
}
public static void echo(String str) {
System.out.print(str);
}
public static void echoln(String str) {
System.out.println(str);
}
}
irini
2007-04-05 16:13:57
评论:0
阅读:78
引用:0
