xml解析:Sax,Dom,pull解析
2012-07-06 21:52
323 查看
Sax
1.startDocument()文档开始
2.endDocument()文档结束
3.startElement(String namespaceURI,String localName,String qName,Attributes atts);
元素开始,localName是元素名
1.4endElement(String uri, String localName, String name)事件
1.5characters(char[] ch, int start, int length)
SAXParserFactory spf = SAXParserFactory.newInstance();//工厂
SAXParser saxParser = spf.newSAXParser();//解析器
//XMLContextHandler extends DeafaultHandler
XMLContextHandler handler = new XMLContextHandler();
saxParser.parse(inStream,handler);
inStream.close();
return handler.getPersons();
每当遍历到文本节点时,会触发该事件
public void characters(char[] ch,int start,in length);
DOM
DocumentBuilder builder = DocumentBuilderFactory.newDocumentBuilder();
Document dom = builder.parse(inStream);
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("person");//查找所有person节点
for(...){
Node = ...
((Element)node).getAttribute("id");
if(node.getNodeType == Node.ELEMENT_NODE){
...
}
}
/*
* 取得文本节点
*/
node.getTextContext();
Android-Pull解析Xml
Android内置的pull解析器解析XML文件.Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE,如果用在javaEE需要把其jar文件放入路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件。Android系统本省使用到的各种xml文件,其内部也是采用Pull解析器进行解析的,Pull解析器的运行方式与SAX解析器相似。它提供了类似的时间,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是,Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream, "UTF-8");
int etype = parser.getEventType();
while (etype != XmlPullParser.END_DOCUMENT) {
switch (etype) {
case XmlPullParser.START_DOCUMENT:
parser.getName();
case XmlPullParser.START_TAG:
}
etype = parse.next();
}
1.startDocument()文档开始
2.endDocument()文档结束
3.startElement(String namespaceURI,String localName,String qName,Attributes atts);
元素开始,localName是元素名
1.4endElement(String uri, String localName, String name)事件
1.5characters(char[] ch, int start, int length)
SAXParserFactory spf = SAXParserFactory.newInstance();//工厂
SAXParser saxParser = spf.newSAXParser();//解析器
//XMLContextHandler extends DeafaultHandler
XMLContextHandler handler = new XMLContextHandler();
saxParser.parse(inStream,handler);
inStream.close();
return handler.getPersons();
每当遍历到文本节点时,会触发该事件
public void characters(char[] ch,int start,in length);
DOM
DocumentBuilder builder = DocumentBuilderFactory.newDocumentBuilder();
Document dom = builder.parse(inStream);
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("person");//查找所有person节点
for(...){
Node = ...
((Element)node).getAttribute("id");
if(node.getNodeType == Node.ELEMENT_NODE){
...
}
}
/*
* 取得文本节点
*/
node.getTextContext();
Android-Pull解析Xml
Android内置的pull解析器解析XML文件.Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE,如果用在javaEE需要把其jar文件放入路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件。Android系统本省使用到的各种xml文件,其内部也是采用Pull解析器进行解析的,Pull解析器的运行方式与SAX解析器相似。它提供了类似的时间,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是,Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream, "UTF-8");
int etype = parser.getEventType();
while (etype != XmlPullParser.END_DOCUMENT) {
switch (etype) {
case XmlPullParser.START_DOCUMENT:
parser.getName();
case XmlPullParser.START_TAG:
}
etype = parse.next();
}
相关文章推荐
- android解析XML总结(SAX、Pull、Dom三种方式)
- (转)Android中解析XML:SAX、DOM、PULL
- Android系列--DOM、SAX、Pull解析XML
- android解析XML总结(SAX、Pull、Dom三种体式格式)
- Android平台中实现对XML的三种解析方式(DOM 、PULL、 SAX)
- Android 通过Dom, Sax, Pull解析网络xml数据
- 解析XML总结(SAX、Pull、Dom三种方式)
- Android开发:XML解析与DOM、SAX、PULL解析对比
- android解析XML总结(SAX、Pull、Dom三种方式)
- android解析XML总结(SAX、Pull、Dom三种方式)
- Android系列--DOM、SAX、Pull解析XML
- android解析XML总结(SAX、Pull、Dom三种方式)
- Android 开发之路十---------SAX,DOM,PULL解析XML
- Android解析XML总结(SAX、Pull、Dom三种方式)
- Android系列--DOM、SAX、Pull解析XML
- Android解析XML三种方式(PULL、SAX、DOM)
- 【Android系列】之DOM、SAX、Pull解析XML
- 安卓使用DOM,SAX,PULL解析xml,安卓写入xml文件
- Android中三种常用解析XML的方式(DOM、SAX、PULL)简介及区别
- 使用SAX或者DOM或者pull解析XML文件