1.SAXPARSER解析:
public void SaxParser(InputStream input){ SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser parser = factory.newSAXParser(); XMLReader reader = parser.getXMLReader(); reader.setContentHandler(new MyHandler()); reader.parse(new InputSource(input)); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
private class MyHandler extends DefaultHandler{ private StringBuilder builder; @Override public void endDocument() throws SAXException { // TODO Auto-generated method stub super.endDocument(); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { // TODO Auto-generated method stub super.endElement(uri, localName, qName); System.out.println(builder.toString()); } @Override public void startDocument() throws SAXException { // TODO Auto-generated method stub super.startDocument(); builder = new StringBuilder(); } @Override public void characters(char[] ch, int start, int length) throws SAXException { // TODO Auto-generated method stub ,输出value super.characters(ch, start, length); builder.append(ch, start, length); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // TODO Auto-generated method stub super.startElement(uri, localName, qName, attributes); builder.setLength(0); } }
2 DOM解析
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(input); Element rootElement = doc.getDocumentElement(); NodeList items = rootElement.getElementsByTagName("result"); for(int i=0;i<items.getLength();i++){ NodeList list = items.item(i).getChildNodes(); for(int j=0;j<list.getLength();j++){ Node node = list.item(j); System.out.println(node.getFirstChild().getNodeValue()); } } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
3 PullParser
private void PullParser(InputStream is){ XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT){ switch (eventType) { case XmlPullParser.START_DOCUMENT: //books = new ArrayList<Book>(); break; case XmlPullParser.START_TAG: if (parser.getName().equals("book")) { //book = new Book(); } else if (parser.getName().equals("id")) { eventType = parser.next(); //book.setId(Integer.parseInt(parser.getText())); System.out.println(parser.getText()); } else if (parser.getName().equals("name")) { eventType = parser.next(); //book.setName(parser.getText()); System.out.println(parser.getText()); } else if (parser.getName().equals("price")) { eventType = parser.next(); System.out.println(parser.getText()); //book.setPrice(Float.parseFloat(parser.getText())); } break; case XmlPullParser.END_TAG: if (parser.getName().equals("book")) { //books.add(book); //book = null; } break; } eventType = parser.next(); } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }