传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
本节我们学习XML解析,在Android程序中,Xml解析与Java中几乎相同,最常用的有SAX,DOM,Pull三种解析方式。Android中内置的是Pull解析方式,因此Pull解析也就成为Android推荐的解析方式。接下来我们分别针对这三种XML解析方式进行讲解。
void startDocument() // 开始文档时触发 void endDocument() // 结束文档时触发 void startElement(String uri, String localName, String qName, Attributes atts) // 解析节点时触发 void endElement(String uri, String localName, String qName) // 结束节点时触发 void characters(char[ ] ch, int start, int length) // 处理文本节点
XMLReader reader = XMLReaderFactory.createXMLReader(); // 使用系统默认值来创建一个XMLReader XMLReader reader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); // 从给定的类名称来创建一个XMLReader SAXParserFactory spFactory = SAXParserFactory.newInstance(); // 使用javax.xml.parsers包中的SAXParserFactory类和SAXParser类创建 SAXParser sParser = spFactory.newSAXParser();
XmlPullParser.START_DOCUMENT // 开始文档事件 XmlPullParser.END_DOCUMENT // 结束文档事件 XmlPullParser.START_TAG // 开始节点事件 XmlPullParser.END_TAG // 结束节点事件
XmlPullParser parser = Xml.newPullParser();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); // 创建一个DocumentBuilderFactory实例 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); // 创建DocumentBuilder Document document = documentBuilder.parse(in); // 加载XML文档(Document) Element root = document.getDocumentElement(); // 获取文档的根结点(Element) NodeList nodes = root.getElementsByTagName(ELEMENT_ANDROID); // 获取根结点中所有子节点的列表(NodeList) for (int i = 0; i < nodes.getLength(); i++) {...} // 使用迭代获取子节点列表中的需要读取的结点