XML解析学习——创建XML
2010-11-29 22:18
423 查看
一.基础知识
在前面的学习过程中,我们基本上比较全面的学习了OPhone/Android平台上读取XML文档的方法,介绍了使用Java SAX、OPhone/Android SAX、DOM和Pull等各种方式来读取XML文档内容。
目前为止,我们一直专注于解析已有的XML文档,实际上我们也是需要读XML的情形比较多。但是我们可能也有写XML的需要,应用程序可能需要将 XML 发送到远程服务器,或者需要以XML的形式保存数据等。因此在这部分内容中我们就来学习下OPhone/Android平台上创建XML的方法。
OPhone/Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用来解析XML的Pull方式解析器XmlPullParser,还提供了一个用于创建XML的XmlSerializer。XmlSerializer没有像XmlPullParser那样提取XML事件,而是把它们推出到数据流OutputStream或Writer中。XmlSerializer提供了很直观的API,即使用startDocument开始文档,endDocument结束文档,startTag开始元素,endTag结束元素,text添加文本等。
下面我们就用上面介绍的创建XML方式来实现把解析出来的USGS地震数据重新保存为一个更简单的XML文件的Demo例子。
二.实例开发
我们要完成的效果图如下图1所示:
图1 创建XML
首先解析USGS的地震数据并以ListView的方式显示,然后点击最上方的"Create XML"按钮就会重新把解析获得的地震数据重新创建为一个XML文件。
新建一个OPhone工程OPhoneXMLDemoSerialize。
添加进之前Demo工程OPhoneXMLDemoSaxII中的EarthquakeEntry.java和OPhoneSaxEarthquakeHandler.java文件。如果需要从本地读取xml数据的话,同时在assets文件夹下添加保存为xml格式了的USGS地震数据USGS_Earthquake_1M2_5.xml,如果需要联网读取的话,在manifest.xml文件中添加权限:
view plaincopy to clipboardprint?
<uses-permission android:name="android.permission.INTERNET" />
并修改res/layout下的main.xml为:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/serializeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</Button>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
接下来就来新建添加一个类SerializeEarthquakeHandler,用来创建XML,内容如下:
view plaincopy to clipboardprint?
public class SerializeEarthquakeHandler {
//写Xml数据
public String writeXml(ArrayList<EarthquakeEntry> earthquakeEntryList)
{
StringWriter xmlWriter = new StringWriter();
try {
//创建XmlSerializer,有两种方式
XmlPullParserFactory pullFactory;
//方式一:使用工厂类XmlPullParserFactory的方式
pullFactory = XmlPullParserFactory.newInstance();
XmlSerializer xmlSerializer = pullFactory.newSerializer();
//方式二:使用Android提供的实用工具类android.util.Xml
// XmlSerializer xmlSerializer = Xml.newSerializer();
xmlSerializer.setOutput(xmlWriter);
//开始具体的写xml
//<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
xmlSerializer.startDocument("UTF-8", true);
//<feed number="25">
xmlSerializer.startTag("", "feed");
xmlSerializer.attribute("", "number", String.valueOf(earthquakeEntryList.size()));
for(EarthquakeEntry earthquakeEntry : earthquakeEntryList)
{
//<entry>
xmlSerializer.startTag("", "entry");
//<title>Vanuatu</title>
xmlSerializer.startTag("", "title");
xmlSerializer.text(earthquakeEntry.getPlace());
xmlSerializer.endTag("", "title");
//<magnitude>5.3</magnitude>
xmlSerializer.startTag("", "magnitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getMagnitude()));
xmlSerializer.endTag("", "magnitude");
//<updated>2010-09-26 06:44:37</updated>
xmlSerializer.startTag("", "updated");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(earthquakeEntry.getDate());
xmlSerializer.text(dateString);
xmlSerializer.endTag("", "updated");
//<link>http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/us2010brar.php</link>
xmlSerializer.startTag("", "link");
xmlSerializer.text(earthquakeEntry.getLink());
xmlSerializer.endTag("", "link");
//<latitude>-14.3009</latitude>
xmlSerializer.startTag("", "latitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getLocation().getLatitude()));
xmlSerializer.endTag("", "latitude");
//<longitude>167.9491</longitude>
xmlSerializer.startTag("", "longitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getLocation().getLongitude()));
xmlSerializer.endTag("", "longitude");
//<elev>-80100.0</elev>
xmlSerializer.startTag("", "elev");
xmlSerializer.text(String.valueOf(earthquakeEntry.getElev()));
xmlSerializer.endTag("", "elev");
//</entry>
xmlSerializer.endTag("", "entry");
}
//</feed>
xmlSerializer.endTag("", "feed");
xmlSerializer.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmlWriter.toString();
}
}
在创建XML的方法中
//写Xml数据
public String writeXml(ArrayList<EarthquakeEntry> earthquakeEntryList)
首先创建XmlSerializer,
//创建XmlSerializer,有两种方式
XmlPullParserFactory pullFactory;
//方式一:使用工厂类XmlPullParserFactory的方式
pullFactory = XmlPullParserFactory.newInstance();
XmlSerializer xmlSerializer = pullFactory.newSerializer();
//方式二:使用Android提供的实用工具类android.util.Xml
// XmlSerializer xmlSerializer = Xml.newSerializer();
创建XmlSerializer有两种方式,一种是使用我们介绍的org.xmlpull.v1包中的工厂类XmlPullParserFactory。除了这种方式外,还可以使用OPhone/Android SDK提供的实用工具包android.util中的类Xml的newSerializer()方法直接创建。
接着为XmlSerializer设置一个输出的Writer,
xmlSerializer.setOutput(xmlWriter);
这里将事件推送到了一个 java.io.StringWriter 实例中。
然后就可以使用具体的startDocument开始文档,endDocument结束文档,startTag开始元素,endTag结束元素,text添加文本等方法来创建具体的XML文档内容,具体方法参考上面的代码部分。从代码中我们可以看到,使用XmlSerializer创建XML还是相当直观和方便的。
最后添加OPhoneXMLDemoSerialize.java文件中的内容为:
view plaincopy to clipboardprint?
public class OPhoneXMLDemoSerialize extends Activity {
/** Called when the activity is first created. */
//定义显示的List相关变量
ListView list;
Button serializeBtn;
ArrayAdapter<EarthquakeEntry> adapter;
ArrayList<EarthquakeEntry> earthquakeEntryList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//用于创建XML的按钮
serializeBtn = (Button)findViewById(R.id.serializeBtn);
serializeBtn.setEnabled(false);
//获取地震数据流
InputStream earthquakeStream = readEarthquakeDataFromFile();
//Android Sax方式进行解析
AndroidSaxEarthquakeHandler androidSaxHandler = new AndroidSaxEarthquakeHandler();
earthquakeEntryList = androidSaxHandler.parse(earthquakeStream);
//用ListView进行显示
list = (ListView)this.findViewById(R.id.list);
adapter = new ArrayAdapter<EarthquakeEntry>(this, android.R.layout.simple_list_item_1, earthquakeEntryList);
list.setAdapter(adapter);
serializeBtn.setEnabled(true);
//点击按钮开始创建XML
serializeBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//构造xml
SerializeEarthquakeHandler serializeHandler = new SerializeEarthquakeHandler();
String earthquakeXml = serializeHandler.writeXml(earthquakeEntryList);
//Log打印写成的xml数据
Log.v("XmlSerialize", earthquakeXml);
//把写成的xml数据输出到文件
OutputStream outStream;
try {
outStream = openFileOutput("earthquake.xml", MODE_PRIVATE);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream);
outStreamWriter.write(earthquakeXml);
outStreamWriter.close();
outStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
private InputStream readEarthquakeDataFromFile()
{
//从本地获取地震数据
InputStream inStream = null;
try {
inStream = this.getAssets().open("USGS_Earthquake_1M2_5.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inStream;
}
private InputStream readEarthquakeDataFromInternet()
{
//从网络上获取实时地震数据
URL infoUrl = null;
InputStream inStream = null;
try {
infoUrl = new URL("http://earthquake.usgs.gov/earthquakes/catalogs/1day-M2.5.xml");
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK)
{
inStream = httpConnection.getInputStream();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inStream;
}
}
程序前部分是使用OPhone/Android SAX的方式解析XML文档,然后在按钮的点击回调函数中把解析获得的地震数据重新创建为XML文档的形式,并分别用Log打印和保存为文件。
view plaincopy to clipboardprint?
//点击按钮开始创建XML
serializeBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//构造xml
SerializeEarthquakeHandler serializeHandler = new SerializeEarthquakeHandler();
String earthquakeXml = serializeHandler.writeXml(earthquakeEntryList);
//Log打印写成的xml数据
Log.v("XmlSerialize", earthquakeXml);
//把写成的xml数据输出到文件
OutputStream outStream;
try {
outStream = openFileOutput("earthquake.xml", MODE_PRIVATE);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream);
outStreamWriter.write(earthquakeXml);
outStreamWriter.close();
outStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
完成了,可以保存运行看下效果。
当点击屏幕上方的"Create XML"按钮时,程序就会创建一个形式更加简单的XML文档,同时在DDMS的LogCat里打印出创建的XML文档内容,如下图2所示:
图2 Log打印出的创建的XML文档内容
同时还会把创建的XML以文件的形式保存在系统中,我们可以在DDMS的File Explorer的data/data/com.ichliebephone.xml.serialize/files文件夹下看到,如下图3所示:
图3 保存着的创建出来的XML文件
并且我们可以把这个文件导出到电脑上,可以看到里面的内容为:
view plaincopy to clipboardprint?
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<feed number="25">
<entry>
<title>Vanuatu</title>
<magnitude>5.3</magnitude>
<updated>2010-09-26 06:44:37</updated>
<link>http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/us2010brar.php</link>
<latitude>-14.3009</latitude>
<longitude>167.9491</longitude>
<elev>-80100.0</elev>
</entry>
<entry>
<!-- 还有entry条目,省略-->
</entry>
</feed>
就是我们解析获得的所有地震条目,并且其中的各个元素及其内容、属性等按我们在SerializeEarthquakeHandler中指定的组织方式保存。
三.总结
在这块内容中我们学习了OPhone/Android平台上创建XML的方法,从以上的Demo例子中我们可以发现OPhone/Android上不仅解析XML方式多,并且方便,而且创建XML也是很方便直观,好理解和实现的。
到这块为止,我们就学习完了OPhone/Android平台上和XML相关的内容,包括解析和创建XML等和XML相关的读与写两个方面,有了这些基础,我想处理OPhone/Android上的XML文档等基本可以轻松应付了,希望以上的学习内容对你也有所帮助,感谢你一直的关注!
注:
参考资料:http://www.ibm.com/developerworks/cn/xml/x-android/
在前面的学习过程中,我们基本上比较全面的学习了OPhone/Android平台上读取XML文档的方法,介绍了使用Java SAX、OPhone/Android SAX、DOM和Pull等各种方式来读取XML文档内容。
目前为止,我们一直专注于解析已有的XML文档,实际上我们也是需要读XML的情形比较多。但是我们可能也有写XML的需要,应用程序可能需要将 XML 发送到远程服务器,或者需要以XML的形式保存数据等。因此在这部分内容中我们就来学习下OPhone/Android平台上创建XML的方法。
OPhone/Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用来解析XML的Pull方式解析器XmlPullParser,还提供了一个用于创建XML的XmlSerializer。XmlSerializer没有像XmlPullParser那样提取XML事件,而是把它们推出到数据流OutputStream或Writer中。XmlSerializer提供了很直观的API,即使用startDocument开始文档,endDocument结束文档,startTag开始元素,endTag结束元素,text添加文本等。
下面我们就用上面介绍的创建XML方式来实现把解析出来的USGS地震数据重新保存为一个更简单的XML文件的Demo例子。
二.实例开发
我们要完成的效果图如下图1所示:
图1 创建XML
首先解析USGS的地震数据并以ListView的方式显示,然后点击最上方的"Create XML"按钮就会重新把解析获得的地震数据重新创建为一个XML文件。
新建一个OPhone工程OPhoneXMLDemoSerialize。
添加进之前Demo工程OPhoneXMLDemoSaxII中的EarthquakeEntry.java和OPhoneSaxEarthquakeHandler.java文件。如果需要从本地读取xml数据的话,同时在assets文件夹下添加保存为xml格式了的USGS地震数据USGS_Earthquake_1M2_5.xml,如果需要联网读取的话,在manifest.xml文件中添加权限:
view plaincopy to clipboardprint?
<uses-permission android:name="android.permission.INTERNET" />
并修改res/layout下的main.xml为:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/serializeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</Button>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
接下来就来新建添加一个类SerializeEarthquakeHandler,用来创建XML,内容如下:
view plaincopy to clipboardprint?
public class SerializeEarthquakeHandler {
//写Xml数据
public String writeXml(ArrayList<EarthquakeEntry> earthquakeEntryList)
{
StringWriter xmlWriter = new StringWriter();
try {
//创建XmlSerializer,有两种方式
XmlPullParserFactory pullFactory;
//方式一:使用工厂类XmlPullParserFactory的方式
pullFactory = XmlPullParserFactory.newInstance();
XmlSerializer xmlSerializer = pullFactory.newSerializer();
//方式二:使用Android提供的实用工具类android.util.Xml
// XmlSerializer xmlSerializer = Xml.newSerializer();
xmlSerializer.setOutput(xmlWriter);
//开始具体的写xml
//<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
xmlSerializer.startDocument("UTF-8", true);
//<feed number="25">
xmlSerializer.startTag("", "feed");
xmlSerializer.attribute("", "number", String.valueOf(earthquakeEntryList.size()));
for(EarthquakeEntry earthquakeEntry : earthquakeEntryList)
{
//<entry>
xmlSerializer.startTag("", "entry");
//<title>Vanuatu</title>
xmlSerializer.startTag("", "title");
xmlSerializer.text(earthquakeEntry.getPlace());
xmlSerializer.endTag("", "title");
//<magnitude>5.3</magnitude>
xmlSerializer.startTag("", "magnitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getMagnitude()));
xmlSerializer.endTag("", "magnitude");
//<updated>2010-09-26 06:44:37</updated>
xmlSerializer.startTag("", "updated");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(earthquakeEntry.getDate());
xmlSerializer.text(dateString);
xmlSerializer.endTag("", "updated");
//<link>http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/us2010brar.php</link>
xmlSerializer.startTag("", "link");
xmlSerializer.text(earthquakeEntry.getLink());
xmlSerializer.endTag("", "link");
//<latitude>-14.3009</latitude>
xmlSerializer.startTag("", "latitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getLocation().getLatitude()));
xmlSerializer.endTag("", "latitude");
//<longitude>167.9491</longitude>
xmlSerializer.startTag("", "longitude");
xmlSerializer.text(String.valueOf(earthquakeEntry.getLocation().getLongitude()));
xmlSerializer.endTag("", "longitude");
//<elev>-80100.0</elev>
xmlSerializer.startTag("", "elev");
xmlSerializer.text(String.valueOf(earthquakeEntry.getElev()));
xmlSerializer.endTag("", "elev");
//</entry>
xmlSerializer.endTag("", "entry");
}
//</feed>
xmlSerializer.endTag("", "feed");
xmlSerializer.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmlWriter.toString();
}
}
在创建XML的方法中
//写Xml数据
public String writeXml(ArrayList<EarthquakeEntry> earthquakeEntryList)
首先创建XmlSerializer,
//创建XmlSerializer,有两种方式
XmlPullParserFactory pullFactory;
//方式一:使用工厂类XmlPullParserFactory的方式
pullFactory = XmlPullParserFactory.newInstance();
XmlSerializer xmlSerializer = pullFactory.newSerializer();
//方式二:使用Android提供的实用工具类android.util.Xml
// XmlSerializer xmlSerializer = Xml.newSerializer();
创建XmlSerializer有两种方式,一种是使用我们介绍的org.xmlpull.v1包中的工厂类XmlPullParserFactory。除了这种方式外,还可以使用OPhone/Android SDK提供的实用工具包android.util中的类Xml的newSerializer()方法直接创建。
接着为XmlSerializer设置一个输出的Writer,
xmlSerializer.setOutput(xmlWriter);
这里将事件推送到了一个 java.io.StringWriter 实例中。
然后就可以使用具体的startDocument开始文档,endDocument结束文档,startTag开始元素,endTag结束元素,text添加文本等方法来创建具体的XML文档内容,具体方法参考上面的代码部分。从代码中我们可以看到,使用XmlSerializer创建XML还是相当直观和方便的。
最后添加OPhoneXMLDemoSerialize.java文件中的内容为:
view plaincopy to clipboardprint?
public class OPhoneXMLDemoSerialize extends Activity {
/** Called when the activity is first created. */
//定义显示的List相关变量
ListView list;
Button serializeBtn;
ArrayAdapter<EarthquakeEntry> adapter;
ArrayList<EarthquakeEntry> earthquakeEntryList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//用于创建XML的按钮
serializeBtn = (Button)findViewById(R.id.serializeBtn);
serializeBtn.setEnabled(false);
//获取地震数据流
InputStream earthquakeStream = readEarthquakeDataFromFile();
//Android Sax方式进行解析
AndroidSaxEarthquakeHandler androidSaxHandler = new AndroidSaxEarthquakeHandler();
earthquakeEntryList = androidSaxHandler.parse(earthquakeStream);
//用ListView进行显示
list = (ListView)this.findViewById(R.id.list);
adapter = new ArrayAdapter<EarthquakeEntry>(this, android.R.layout.simple_list_item_1, earthquakeEntryList);
list.setAdapter(adapter);
serializeBtn.setEnabled(true);
//点击按钮开始创建XML
serializeBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//构造xml
SerializeEarthquakeHandler serializeHandler = new SerializeEarthquakeHandler();
String earthquakeXml = serializeHandler.writeXml(earthquakeEntryList);
//Log打印写成的xml数据
Log.v("XmlSerialize", earthquakeXml);
//把写成的xml数据输出到文件
OutputStream outStream;
try {
outStream = openFileOutput("earthquake.xml", MODE_PRIVATE);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream);
outStreamWriter.write(earthquakeXml);
outStreamWriter.close();
outStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
private InputStream readEarthquakeDataFromFile()
{
//从本地获取地震数据
InputStream inStream = null;
try {
inStream = this.getAssets().open("USGS_Earthquake_1M2_5.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inStream;
}
private InputStream readEarthquakeDataFromInternet()
{
//从网络上获取实时地震数据
URL infoUrl = null;
InputStream inStream = null;
try {
infoUrl = new URL("http://earthquake.usgs.gov/earthquakes/catalogs/1day-M2.5.xml");
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK)
{
inStream = httpConnection.getInputStream();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inStream;
}
}
程序前部分是使用OPhone/Android SAX的方式解析XML文档,然后在按钮的点击回调函数中把解析获得的地震数据重新创建为XML文档的形式,并分别用Log打印和保存为文件。
view plaincopy to clipboardprint?
//点击按钮开始创建XML
serializeBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//构造xml
SerializeEarthquakeHandler serializeHandler = new SerializeEarthquakeHandler();
String earthquakeXml = serializeHandler.writeXml(earthquakeEntryList);
//Log打印写成的xml数据
Log.v("XmlSerialize", earthquakeXml);
//把写成的xml数据输出到文件
OutputStream outStream;
try {
outStream = openFileOutput("earthquake.xml", MODE_PRIVATE);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream);
outStreamWriter.write(earthquakeXml);
outStreamWriter.close();
outStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
完成了,可以保存运行看下效果。
当点击屏幕上方的"Create XML"按钮时,程序就会创建一个形式更加简单的XML文档,同时在DDMS的LogCat里打印出创建的XML文档内容,如下图2所示:
图2 Log打印出的创建的XML文档内容
同时还会把创建的XML以文件的形式保存在系统中,我们可以在DDMS的File Explorer的data/data/com.ichliebephone.xml.serialize/files文件夹下看到,如下图3所示:
图3 保存着的创建出来的XML文件
并且我们可以把这个文件导出到电脑上,可以看到里面的内容为:
view plaincopy to clipboardprint?
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<feed number="25">
<entry>
<title>Vanuatu</title>
<magnitude>5.3</magnitude>
<updated>2010-09-26 06:44:37</updated>
<link>http://earthquake.usgs.gov/earthquakes/recenteqsww/Quakes/us2010brar.php</link>
<latitude>-14.3009</latitude>
<longitude>167.9491</longitude>
<elev>-80100.0</elev>
</entry>
<entry>
<!-- 还有entry条目,省略-->
</entry>
</feed>
就是我们解析获得的所有地震条目,并且其中的各个元素及其内容、属性等按我们在SerializeEarthquakeHandler中指定的组织方式保存。
三.总结
在这块内容中我们学习了OPhone/Android平台上创建XML的方法,从以上的Demo例子中我们可以发现OPhone/Android上不仅解析XML方式多,并且方便,而且创建XML也是很方便直观,好理解和实现的。
到这块为止,我们就学习完了OPhone/Android平台上和XML相关的内容,包括解析和创建XML等和XML相关的读与写两个方面,有了这些基础,我想处理OPhone/Android上的XML文档等基本可以轻松应付了,希望以上的学习内容对你也有所帮助,感谢你一直的关注!
注:
参考资料:http://www.ibm.com/developerworks/cn/xml/x-android/
相关文章推荐
- Android解析和创建XML之学习笔记------SAX
- Android XML解析学习——创建XML
- 程序员带你学习安卓开发-XML文档的创建与解析
- Android XML解析学习——创建XML .
- Android XML解析学习——创建XML
- Dom4j解析XML学习之利用解析的数据进行JDBC操作
- Android 创建与解析XML(六)—— 比较与使用
- Dom4j创建和解析XML
- IOS学习之十六:网络数据的XML解析
- Android 创建与解析XML(四)—— Pull方式
- VC++ MSXML创建XML文件以及对XML文档解析
- android解析xml三种方式学习总结
- php dom方式解析 创建xml
- java解析和创建XML 的四种方式
- DOM4J 解析xml,创建xml
- java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
- Android 创建与解析XML(五)—— Dom4j方式
- Java的XML创建、解析文档(转载自http://blog.csdn.net/psyuhen/article/details/7539228)
- XML学习3 xml的解析
- Dom方式创建/解析xml