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

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2008 powered by YuLog