xml属于可变的 取里面的big值及num值
如:11271
也可能是
11271271
11271271271<
simple.xml
[code="java"]
1
1
271
271
271
[/code]
用JAVA实现的
[code="java"]
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
/**
2012-08-16
*/
public class SaxParseXml extends DefaultHandler{
private String big;
private List list;
private String mark;
//只调用一次 初始化list集合
@Override
public void startDocument() throws SAXException {
list=new ArrayList();
}
//调用多次 开始解析
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if(attributes.getValue(0) != null){
mark = qName;
big = attributes.getValue(0);
}
}
//调用多次
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
mark = null;
}
//只调用一次
@Override
public void endDocument() throws SAXException {
}
//调用多次
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if(mark !=null){
String date=new String(ch,start,length);
String[] str = {big,date};
list.add(str);
}
}
public void getParser(){
}
public static void main(String[] args) {
SAXParser parser = null;
try {
//构建SAXParser
parser = SAXParserFactory.newInstance().newSAXParser();
//实例化 DefaultHandler对象
SaxParseXml parseXml=new SaxParseXml();
//加载资源文件 转化为一个输入流
InputStream stream=SaxParseXml.class.getClassLoader().getResourceAsStream("simple.xml");
//调用parse()方法
parser.parse(stream, parseXml);
//遍历结果
for(String[] str:parseXml.getList()){
System.out.println(str[0] + "," + str[1]);
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getBig() {
return big;
}
public void setBig(String big) {
this.big = big;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
[/code]