Quantcast
Channel: How to get an image from xml data by parsing - Stack Overflow
Viewing all articles
Browse latest Browse all 4

How to get an image from xml data by parsing

$
0
0

I have an xml structure like this

<element><foodjoint_name>DineOut</foodjoint_name><logo>http://192.168.1.112/dineout/images/dominos.jpg</logo></element>

I am parsing the data : <foodjoint_name> will be a string name of some thing <logo > will be an image url . I have a xmlParser where i am parsing the data

In my main class, I am showing in a listView the parsed data. My problem is that, I am not getting the logo.

How to get that ? Please tell me, if i have to change in code.

This is my main class

// All static variables    static final String URL = "http://192.168.1.112/dineout/index.php/dineout/view";    // XML node keys    static final String KEY_ITEM = "element"; // parent node    //static final String KEY_ID = "foodjoint_id";    static final String KEY_NAME = "foodjoint_name";    static final String KEY_LOGO = "logo";    //static final String KEY_DESC = "foodjoint_description";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();        XMLParser parser = new XMLParser();        String xml = parser.getXmlFromUrl(URL); // getting XML        Document doc = parser.getDomElement(xml); // getting DOM element        NodeList nl = doc.getElementsByTagName(KEY_ITEM);        // looping through all item nodes <item>        for (int i = 0; i < nl.getLength(); i++) {            // creating new HashMap            HashMap<String, String> map = new HashMap<String, String>();            Element e = (Element) nl.item(i);            // adding each child node to HashMap key => value            //map.put(KEY_ID, parser.getValue(e, KEY_ID));            map.put(KEY_NAME, parser.getValue(e, KEY_NAME));            map.put(KEY_LOGO,  parser.getValue(e, KEY_LOGO));            //map.put(KEY_DESC, parser.getValue(e, KEY_DESC));            // adding HashList to ArrayList            menuItems.add(map);        }        // Adding menuItems to ListView        ListAdapter adapter = new SimpleAdapter(this, menuItems,                R.layout.list_item,                new String[] { KEY_NAME, KEY_LOGO }, new int[] {                        R.id.name,R.id.imageView1 });        setListAdapter(adapter);        // selecting single ListView item        ListView lv = getListView();        lv.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {                // getting values from selected ListItem                String name = ((TextView) view.findViewById(R.id.name)).getText().toString();                String cost = ((TextView) view.findViewById(R.id.cost)).getText().toString();                String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString();                // Starting new intent                Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);                in.putExtra(KEY_NAME, name);                in.putExtra(KEY_LOGO, cost);                //in.putExtra(KEY_DESC, description);                startActivity(in);            }        });    }}

This is my parser class

public class XMLParser {    // constructor    public XMLParser() {    }    /**     * Getting XML from URL making HTTP request     * @param url string     * */    public String getXmlFromUrl(String url) {        String xml = null;        try {            // defaultHttpClient            DefaultHttpClient httpClient = new DefaultHttpClient();            HttpPost httpPost = new HttpPost(url);            HttpResponse httpResponse = httpClient.execute(httpPost);            HttpEntity httpEntity = httpResponse.getEntity();            xml = EntityUtils.toString(httpEntity);        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        // return XML        return xml;    }    /**     * Getting XML DOM element     * @param XML string     * */    public Document getDomElement(String xml){        Document doc = null;        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();        try {            DocumentBuilder db = dbf.newDocumentBuilder();            InputSource is = new InputSource();                is.setCharacterStream(new StringReader(xml));                doc = db.parse(is);             } catch (ParserConfigurationException e) {                Log.e("Error: ", e.getMessage());                return null;            } catch (SAXException e) {                Log.e("Error: ", e.getMessage());                return null;            } catch (IOException e) {                Log.e("Error: ", e.getMessage());                return null;            }            return doc;    }    /** Getting node value      * @param elem element      */     public final String getElementValue( Node elem ) {         Node child;         if( elem != null){             if (elem.hasChildNodes()){                 for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){                     if( child.getNodeType() == Node.TEXT_NODE  ){                         return child.getNodeValue();                     }                 }             }         }         return "";     }     /**      * Getting node value      * @param Element node      * @param key string      * */     public String getValue(Element item, String str) {                 NodeList n = item.getElementsByTagName(str);                    return this.getElementValue(n.item(0));        }

Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles





Latest Images