如何使用android在spinner中显示xml解析值?

时间:2011-01-20 14:47:04

标签: android

我正在开发一个android应用程序,我想从url解析两个节点, 奈 12 我想解析城市名称和相应的id并在微调器中显示,当我在微调器中选择特定的城市时,在警告框中显示相应的id,怎么办,请指导我

谢谢

1 个答案:

答案 0 :(得分:1)

如果你是xml就是这样,

<channel>
<link>
<title> Test Values</title>
<item>
<cityid>
12</cityid>
<cityname>
chennai
</cityname>
</item>
</link>
</channel>

然后使用DOM或SAX解析这些标记并将其存储在像这样的数组

对于Instance,如果要使用DOM Parser,请参阅此代码

步骤1:创建一个方法来解析城市标识并创建一个数组来存储该解析的值

String[] cityid=null;

public  void  parse_id() throws UnknownHostException{


        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

        try {

            DocumentBuilder builder = factory.newDocumentBuilder();
            Document dom = builder.parse(this.getInputStream());
            org.w3c.dom.Element root = dom.getDocumentElement();
            NodeList items = root.getElementsByTagName("item);
            int a=items.getLength();
            int k=0;
            bstagid=new String[a];
            for (int i = 0; i < items.getLength(); i++) {
                Message_category message = new Message_category();
                Node item = items.item(i);
                NodeList properties = item.getChildNodes();
                for (int j = 0; j < properties.getLength(); j++) {
                    Node property = properties.item(j);
                    String name = property.getNodeName();
                    if (name.equalsIgnoreCase(cityid)) {
                        message.setId(property.getFirstChild()
                                .getNodeValue());
                        cityid[k]=property.getFirstChild().getNodeValue();
                        k++;
                    }
                }

            }
        } catch (Exception e) {         }

    }

同样的城市名称, 然后在微调器中,使用ArrayAdapter,如果显示chennai然后将其作为cityname数组的元素引用,那么你可以参考cityid数组的第n个元素,用城市名称映射城市id,就像这样..