xml解析:Sax,Dom,pull解析
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();
}
?
總結
以上是生活随笔為你收集整理的xml解析:Sax,Dom,pull解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牦牛肉为什么那么贵?
- 下一篇: adobe media encoder下