How to reading XML from a URL in Android

后端 未结 3 537
心在旅途
心在旅途 2021-01-21 09:58

I want to read a XML document from a URL:

public void DownloadXmlFile() throws IOException{
        //TODO
        String url = \"http://api.m1858.com/coursebook         


        
3条回答
  •  心在旅途
    2021-01-21 10:43

    there are two step for read data from server...

    1.Make a HTTP request to get the data from the webservice 2.Parse a XML document and read the contents

    try 
        {
    
            URL url = new URL("http://www.w3schools.com/xml/note.xml");
    
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(url.openStream()));
            doc.getDocumentElement().normalize();
    
            NodeList nodeList = doc.getElementsByTagName("note");
            /** Assign textview array lenght by arraylist size */
    
    
            to = new TextView[nodeList.getLength()];
            from = new TextView[nodeList.getLength()];
            heading = new TextView[nodeList.getLength()];
            body = new TextView[nodeList.getLength()];
    
    
    
            for (int i = 0; i < nodeList.getLength(); i++) 
            {
                Node node = nodeList.item(i);
    
                to[i] = new TextView(this);
                from[i] = new TextView(this);
                body[i] = new TextView(this);
                heading[i] = new TextView(this);
    
                Element fstElmnt = (Element) node;
                NodeList toList = fstElmnt.getElementsByTagName("to");
                Element nameElement = (Element) toList.item(0);
                toList = nameElement.getChildNodes();
                to[i].setText("To = "+ ((Node) toList.item(0)).getNodeValue());
    
                NodeList fromList = fstElmnt.getElementsByTagName("from");
                Element fromElement = (Element) fromList.item(0);
                fromList = fromElement.getChildNodes();
                from[i].setText("from = "+ ((Node) fromList.item(0)).getNodeValue());
    
                NodeList headingList = fstElmnt.getElementsByTagName("heading");
                Element headingElement = (Element) headingList.item(0);
                headingList = headingElement.getChildNodes();
                heading[i].setText("heading = "+ ((Node) headingList.item(0)).getNodeValue());
    
    
                NodeList bodyList = fstElmnt.getElementsByTagName("body");
                Element bodyElement = (Element) bodyList.item(0);
                bodyList = bodyElement.getChildNodes();
                body[i].setText("body = "+ ((Node) bodyList.item(0)).getNodeValue());
    
                layout.addView(to[i]);
                layout.addView(from[i]);
                layout.addView(heading[i]);
                layout.addView(body[i]);
    
            }
        } 
        catch (Exception e) 
        {
            System.out.println("XML Pasing Excpetion = " + e);
        }
    

提交回复
热议问题