深入理解Android解析xml(二)
2014-12-29 00:21
537 查看
Android解析xml
一、前面介绍了3中方式的如何解析XML的,以及一些例子,这次我将介绍一下,如何写回XML以及3种解析的内部的详细介绍。
我们将xml文件放在asset目录下,通过
下面是一个Android程序完整的解析和写回代码
String xml = parser.serialize(persons);
FileOutputStream fos = openFileOutput("books.xml",Context.MODE_PRIVATE);
fos.write(xml.getBytes("UTF-8"));
再次总结,SAX是基于事件处理的,也就是他会按顺序解析文档,如果存在匹配的事件才会触发。
而DOM 是基于文档处理的,也就是他会先将xml读到内存形成一个文档树,然后在进行判断解析出来。
其他的解析方法还有JDOM,和DOM4J。
一、前面介绍了3中方式的如何解析XML的,以及一些例子,这次我将介绍一下,如何写回XML以及3种解析的内部的详细介绍。
我们将xml文件放在asset目录下,通过
InputStream is = getAssets().open("persons.xml")//得到输入流
下面是一个Android程序完整的解析和写回代码
public class MainActivity extends Activity { private static final String TAG = "XML"; private BookParser parser; private List<Book> books; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button readBtn = (Button) findViewById(R.id.readBtn); Button writeBtn = (Button) findViewById(R.id.writeBtn); readBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { InputStream is = getAssets().open("books.xml"); parser = new SaxPersonParser(); //创建SaxBookParser实例 persons = parser.readXml(is); //解析输入流 for (Person person : persons) { Log.i(TAG, book.toString()); } } catch (Exception e) { Log.e(TAG, e.getMessage()); } } }); writeBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { String xml = parser.serialize(persons); //序列化 FileOutputStream fos = openFileOutput("persons.xml", Context.MODE_PRIVATE); fos.write(xml.getBytes("UTF-8")); } catch (Exception e) { Log.e(TAG, e.getMessage()); } } }); } }写回部分代码,非常简单
String xml = parser.serialize(persons);
FileOutputStream fos = openFileOutput("books.xml",Context.MODE_PRIVATE);
fos.write(xml.getBytes("UTF-8"));
再次总结,SAX是基于事件处理的,也就是他会按顺序解析文档,如果存在匹配的事件才会触发。
而DOM 是基于文档处理的,也就是他会先将xml读到内存形成一个文档树,然后在进行判断解析出来。
其他的解析方法还有JDOM,和DOM4J。
相关文章推荐
- 深入理解Android解析XML(一)
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android之事件分发机制深入理解与详细解析(ViewGroup)
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android之事件分发机制深入理解与详细解析(View)
- 深入理解Android(10)——Android中的Thread与线程类解析
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android 使用XML做动画UI的深入解析
- Android EventBus源码解析 带你深入理解EventBus(二)
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus
- Android EventBus源码解析 带你深入理解EventBus