引用:http://www.ibm.com/developerworks/cn/xml/x-stax1.html?S_TACT=105AGX52&S_CMP=techcsdn
Streaming API for XML (StAX) 是用 Java™ 语言处理 XML 的最新标准。作为一种面向流的方法,无论从性能还是可用性上都优于其他方法,如 DOM 和 SAX。
从一开始,Java API for XML Processing (JAXP) 就提供了两种方法来处理 XML:文档对象模型(DOM)方法是用标准的对象模型表示 XML 文档;Simple API for XML (SAX) 方法使用应用程序提供的事件处理程序来处理 XML。JSR-173 提出了一种面向流的新方法:Streaming API for XML (StAX)。其最终版本于 2004 年 3 月发布,并成为了 JAXP 1.4(将包含在即将发布的 Java 6 中)的一部分。
XMLStreamReader 解析 XML 文档的完整例子
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader r = factory.createXMLStreamReader(input);
try {
int event = r.getEventType();
while (true) {
switch (event) {
case XMLStreamConstants.START_DOCUMENT:
out.println("Start Document.");
break;
case XMLStreamConstants.START_ELEMENT:
out.println("Start Element: " + r.getName());
for(int i = 0, n = r.getAttributeCount(); i < n; ++i)
out.println("Attribute: " + r.getAttributeName(i)
+ "=" + r.getAttributeValue(i));
break;
case XMLStreamConstants.CHARACTERS:
if (r.isWhiteSpace())
break;
out.println("Text: " + r.getText());
break;
case XMLStreamConstants.END_ELEMENT:
out.println("End Element:" + r.getName());
break;
case XMLStreamConstants.END_DOCUMENT:
out.println("End Document.");
break;
}
if (!r.hasNext())
break;
event = r.next();
}
} finally {
r.close();
}
|
本文介绍Streaming API for XML (StAX),一种用于Java的面向流的XML处理方法。相较于DOM和SAX,StAX提供更好的性能和可用性。文章通过一个完整的示例展示了如何使用XMLStreamReader解析XML文档。
1736

被折叠的 条评论
为什么被折叠?



