Android 解析XML

public void getXML(String url) throws XmlPullParserException,IOException,URISyntaxException 
{ 
    String xmlString=downloadXML(url);   
      
    XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); 
      
    factory.setNamespaceAware(true); 
      
    XmlPullParser parser=factory.newPullParser(); 
      
  
      
    parser.setInput(new StringReader(xmlString)); 
      
    int eventType=parser.getEventType(); 
      
     List<Forecast_conditions> conditionsList=new ArrayList<Forecast_conditions>(); 
     Forecast_conditions forecast_conditions=null; 
      
      
    while (eventType != XmlPullParser.END_DOCUMENT) { 
          
        if (eventType == XmlPullParser.START_DOCUMENT) { 
            System.out.println("Start Document"); 
        }else if (eventType== XmlPullParser.START_TAG) { 
            System.out.println("Start Tag "+parser.getName()); 
              
              
              
              
            if (parser.getName().equals("forecast_conditions"))  
            { 
                forecast_conditions=new Forecast_conditions(); 
            } 
                  
                if (parser.getName().equals("day_of_week")) { 
                    forecast_conditions.setDay_of_week(parser.getAttributeValue(0)); 
                      
                }else if (parser.getName().equals("low")) { 
                      
                    forecast_conditions.setLow(parser.getAttributeValue(0)); 
                }else if (parser.getName().equals("high")) { 
                      
                    forecast_conditions.setHigh(parser.getAttributeValue(0)); 
                }else if (parser.getName().equals("icon")) { 
                      
                    try { 
                        forecast_conditions.setIcon(parser.getAttributeValue(0)); 
                    } catch (Exception e) { 
                        // TODO: handle exception 
                    } 
                      
                      
                }else if (parser.getName().equals("condition")) { 
                      
                    try { 
                         forecast_conditions.setCondition(parser.getAttributeValue(0));  
                    } catch(Exception e){ 
                          
                    } 
                      
                     
                      
                      
                } 
              
              
              
              
           /*   int size=parser.getAttributeCount(); 
              
            for (int i = 0; i < size; i++) { 
                System.out.println("AttributeName "+parser.getAttributeName(i)); 
                System.out.println("AttributeValue"+parser.getAttributeValue(i)); 
            } */
        }else if(eventType== XmlPullParser.END_TAG){ 
            System.out.println("End Tag "+parser.getName()); 
            if (parser.getName().equals("forecast_conditions")) { 
                conditionsList.add(forecast_conditions); 
            } 
              
        }else if(eventType==XmlPullParser.TEXT){ 
            System.out.println("Text "+parser.getText()); 
        } 
          
        eventType=parser.next(); 
    } 
    System.out.println("End Document"); 
      
      
    bindToListView(conditionsList); 
    //XmlUtils. 
          
      
}
01.package com.st.demo;   
02.  
03.import java.io.File;   
04.import java.io.FileInputStream;   
05.import java.io.InputStream;   
06.  
07.import javax.xml.parsers.DocumentBuilder;   
08.import javax.xml.parsers.DocumentBuilderFactory;   
09.  
10.import org.w3c.dom.Document;   
11.import org.w3c.dom.Element;   
12.import org.w3c.dom.Node;   
13.import org.w3c.dom.NodeList;   
14.  
15.public class XmlReader {   
16.    public static void main(String[] args) {   
17.        XmlReader reader = new XmlReader();   
18.    }   
19.    public XmlReader(){   
20.        DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();   
21.        try {   
22.            DocumentBuilder domBuilder = domfac.newDocumentBuilder();   
23.            InputStream is = new FileInputStream(new File("D:/test1.xml"));   
24.            Document doc = domBuilder.parse(is);   
25.            Element root = doc.getDocumentElement();   
26.            NodeList books = root.getChildNodes();   
27.            if(books!=null){   
28.                for (int i = 0; i < books.getLength(); i++) {   
29.                    Node book = books.item(i);   
30.                     if(book.getNodeType()==Node.ELEMENT_NODE) {   
31.                            //(7)取得节点的属性值   
32.                            String email=book.getAttributes().getNamedItem("email").getNodeValue();   
33.                            System.out.println(email);   
34.                            //注意,节点的属性也是它的子节点。它的节点类型也是Node.ELEMENT_NODE   
35.                            //(8)轮循子节点   
36.                            for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()) {   
37.                                if(node.getNodeType()==Node.ELEMENT_NODE) {   
38.                                    if(node.getNodeName().equals("name")) {   
39.                                        String name=node.getNodeValue();   
40.                                        String name1=node.getFirstChild().getNodeValue();   
41.                                        System.out.println(name);   
42.                                        System.out.println(name1);   
43.                                    }   
44.                                    if(node.getNodeName().equals("price")) {   
45.                                        String price=node.getFirstChild().getNodeValue();   
46.                                        System.out.println(price);   
47.                                    }   
48.                                }   
49.                            }   
50.                     }   
51.                }   
52.            }   
53.        } catch (Exception e) {   
54.            // TODO Auto-generated catch block   
55.            e.printStackTrace();   
56.        }   
57.           
58.    }   
59.}  
原文地址:https://www.cnblogs.com/zuiyirenjian/p/3484036.html