广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    基于Android XML解析与保存的实现

    2018-04-06 10:40:11 次阅读 稿源:互联网
    广告

    解析XML文件:
    在Android平台上可以使用SAX、DOM和Android附带的pull解析器解析XML文件;
    pull解析器提供了各种事件,使用parser.next()方法进入下一个元素并触发相应事件,pull解析器产生的事件是一个数字,可以通过switch对感兴趣的事件进行处理;通过paser.nextText()方法可以获取下一个Text类型的节点的值;
    http://xmlpull.org/xmlpull-website/impls.shtml;

    读取XML
    XmlPullParser pullParser = Xml.newPullParser();
    pullParser.setInput(xml, "UTF-8");//为破解器添加要解析的XML数据
    int event = pullParser.getEventType();//开始读取,获取事件返回值
    pullParser.getName();//获取节点名称
    pullParser.getAttributeValue(0);//获取第一个属性的值
    pullParser.nextText();//获取标签之后的节点的内容
    event = pullParser.next();//解析器遇到结束标签不会自动向下解析,需要调用此方法进行继续执行;

    保存文件到XML

    public static void save(List<Person> persons, OutputStream outStream)
    throws Exception, IllegalStateException, IOException {
    XmlSerializer serializer = Xml.newSerializer();//获取XML写入信息的序列化对象
    serializer.setOutput(outStream, "UTF-8");//设置要写入的OutputStream
    serializer.startDocument("UTF-8", true);//设置文档标签

    serializer.startTag(null, "persons");//设置开始标签,第一个参数为namespace
    for (Person person : persons) {
    serializer.startTag(null, "person");
    serializer.attribute(null, "id", person.getId().toString());

    serializer.startTag(null, "name");
    serializer.text(person.getName());
    serializer.endTag(null, "name");

    serializer.startTag(null, "age");
    serializer.text(person.getAge().toString());
    serializer.endTag(null, "age");

    serializer.endTag(null, "person");
    }
    serializer.endTag(null, "persons");
    serializer.endDocument();
    outStream.flush();
    outStream.close();
    }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告