如何使用XML文件?

时间:2013-01-12 03:47:09

标签: android xml parsing xml-parsing android-listview

我想在ListView中显示各大洲的名称,我们称之为 listContinents 。在选择例如US之后,我想在那里显示所有状态,我们称之为 ListStates 。选择特定州后,我想显示该州的所有城市,我们称之为 ListCity 。选择城市后,我想显示有关该城市的一些信息,我们称之为 listCityInfo 。这是我上面所说的总结。

大陆>> 状态>> 城市>>的信息即可。

如何创建一个包含所有信息并从中读取的XML文件?基本上我不知道如何制作它。我将信息存储在html文件中,因此我应该将其转换为XML文件。这是要走的路吗?

如果XML文件包含所有信息,我将如何阅读它?如果XML文件只包含大陆,州或城市,我知道如何阅读,但不是全部都在那里。我如何使其工作?我不想创建超过500个包含每个州的城市的XML文件,这将浪费时间。

有人可以使用任何示例向我说明这是如何工作的,还是将我链接到有用的网站?

我将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

我将如何做到这一点。

  1. 将您的信息保存到SQlite数据库并将其放入资产文件夹。 (但是如果你熟悉webservice,我建议你使用它。并使用​​json,因为xml是Android中的痛苦)
  2. 阅读并填充到expandable listview Sample example

答案 1 :(得分:-1)

  File newxmlfile = new File("/data/com.itwine/emergency.xml");

        try{
                newxmlfile.createNewFile();
        }catch(IOException e){
                Log.e("IOException", "exception in createNewFile() method");
        }
        //we have to bind the new file with a FileOutputStream
        FileOutputStream fileos = null;        
        try{
                fileos = new FileOutputStream(newxmlfile);
        }catch(FileNotFoundException e){
                Log.e("FileNotFoundException", "can't create FileOutputStream");
        }
        //we create a XmlSerializer in order to write xml data
        XmlSerializer serializer = Xml.newSerializer();
        try {
                //we set the FileOutputStream as output for the serializer, using UTF-8 encoding
                        serializer.setOutput(fileos, "UTF-8");
                        //Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null)
                        serializer.startDocument(null, Boolean.valueOf(true));
                        //set indentation option
                        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
                        //start a tag called "root"
                        serializer.startTag(null, "root");
                        *//**serializer.startTag(null, "Child1");
                        serializer.endTag(null, "Child1");
                        serializer.startTag(null, "Child2");
                        serializer.attribute(null, "attribute", "value");
                        serializer.endTag(null, "Child2");*//*
                        serializer.startTag(null, "EmailId");
                        serializer.text(txtemailid.getText().toString());
                        serializer.endTag(null,"EmailId");
                        serializer.startTag(null, "PhoneNo");
                        serializer.text(txtphoneno.getText().toString());
                        serializer.endTag(null,"PhoneNo");
                        serializer.endTag(null,"root");
                        serializer.endDocument();
                        //write xml data into the FileOutputStream
                        serializer.flush();
                        //finally we close the file stream
                        fileos.close();
                       Toast.makeText(getApplication(), "xml created",Toast.LENGTH_LONG);
                } catch (Exception e) {
                        Log.e("Exception","error occurred while creating xml file");
                }

是的,有一种方法。你可以使用FileOutputStream编写Xmlfile。并使用XMLserializer设置属性和标签。看看我给出了一个例子。