使用StAX解析器。

package chapter12;
/**
 * 使用StAX解析器。
 * StAX解析器是一种“拉解析器(pull parser)",与安装事件处理不同,你只需要使用下面这样的基本篁来迭代所有的事件:
 * InputStream in = url.openStream();
 * XMLInputFactory factory = XMLInputFactory.newInstance();
 * XMLStreamReader parser = factory.createXMLStreamReader(in);
 * while(parser.hasNext()){
 * int event = parser.next();
 * Call parser methods to obtain event details.
 * }
 *
 * 例如:在解析下面片断时
 * <font>
 * <name> Helvetica</name>
 * <size units = "pt">36</size>
 * </font>
 * 
 * 解析器将产生下面的事件:
 *  1.START_ELEMTNT,元素名:font
 *  2.CHARACTERS,内容:空白字符
 *  3.START_ELEMTNT,元素名:name
 *  4.CHARACTERS,内容:Helvetica
 *  5.START_ELEMTNT,元素名:name
 *  6.CHARACTERS,内容:空白字符
 *  7.START_ELEMTNT,元素名:size
 *  8.CHARACTERS,内容:36
 *  9.START_ELEMTNT,元素名:size
 *  10.CHARACTERS,内容:空白字符
 *  11.START_ELEMTNT,元素名:font
 *  要分析这些值,需要调用XMLStreamReader类的恰当方法例如:
 *  String units = parser.getAttributeValue(null, "units"); //获取当前元素的units属性。 
 *  
 * 
 */


import java.io.*;
import java.net.*;


import javax.xml.stream.*;


public class StAXTest1 {


public static void main(String[]args) throws Exception{
String[] str = {"http://www.w3c.org"}; //测试一
// String[] str = {"http://www.baidu.com"}; //测试二
method(str);
}

public static void method(String[] str) throws Exception{


String urlString;
if(str.length == 0) {
urlString = "http://www.w3c.org";
System.out.println("Using " + urlString);
}else urlString = str[0];
URL url = new URL(urlString);
System.out.println("str[0] = " + str[0]);
System.out.println("url = " +url);
InputStream in = url.openStream();
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader parser = factory.createXMLStreamReader(in);
while(parser.hasNext()){
System.out.println(parser.next());
int event = parser.next();
if(event == XMLStreamConstants.START_ELEMENT){
if(parser.getLocalName().equals("a")){
String href = parser.getAttributeValue(null,"href"); //获取当前的href属性。
if(href == null){
System.out.println(href);
}
}
}
}
}
public static void method1(){

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值