Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Streaming API for XML (StAX)

StAX là API cho việc thao tác với tài liệu XML dựa trên sự kiện. Tuy nhiên nó khác với cách xử lý của SAX (Simple API for XML). StAX dùng pull-parsing còn SAX dùng push-parsing.

Tham khảo thêm tại:http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP2.html

Ví dụ:

import java.io.FileReader;
import java.io.Reader;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;

public class XMLStreamReaderDemo {
public static void main(String[] args) throws Exception {
XMLInputFactory factory = XMLInputFactory.newInstance();

Reader fileReader = new FileReader(“source.xml”);
XMLStreamReader reader = factory.createXMLStreamReader(fileReader);

while (reader.hasNext()) {
process(reader);
reader.next();
}
}

private static void process(XMLStreamReader reader) {
int eventType = reader.getEventType();
switch (eventType) {
case XMLStreamConstants.START_ELEMENT:
System.out.println(“Start element: ” + reader.getLocalName());

int count = reader.getAttributeCount();
for (int i = 0; i < count; i++) {
String name = reader.getAttributeLocalName(i);
String value = reader.getAttributeValue(i);
System.out.println(“\tAttribute name/value: ” + name + “/” + value);
}
break;

case XMLStreamConstants.END_ELEMENT:
System.out.println(“End element: ” + reader.getLocalName());
break;

case XMLStreamConstants.CHARACTERS:
System.out.println(“Text: ” + reader.getText());
break;
default:
break;
}
}
}

One Response to “Streaming API for XML (StAX)”

  1. Ice said

    Thầy cho em hỏi pull-parsing và push-parsing khác nhau chỗ nào Thầy, em cám ơn thầy

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: