Android XML文件读取解析三种方式

文章介绍了XML解析的三种主要方式:DOM解析、Pull解析和SAX解析。DOM方式将整个XML文件加载到内存,适合小文件,但对大文件和手机CPU性能有影响。Pull解析基于事件驱动,逐个处理事件,节省内存。SAX解析也是事件驱动,适用于大文件,通过DefaultHandler处理解析事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DOM解析

DOM方式解析xml是先把xml文档都读到内存中,然后再用DOM API来访问树形结构,并获取数据的,但是这样一来,如果xml文件很大呢?手机CPU处理能力当然不能与PC机器比,因此在处理性能上会有折损。所以如果XML文件比较大,建议还是用下面两种方式,而不用DOM方式。

DOM解析的步骤一般如下:

1.构建一个DocumentBuilderFactory实例
2.构建DocumentBuilder
3.加载XML文档(Document)
4.遍历XML文档

 private List<Person> parseByDomParser()
            throws ParserConfigurationException, SAXException, IOException {
        List<Person> resList = new ArrayList<Person>();

        // 构建一个DocumentBuilderFactory实例
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        // 构建DocumentBuilder
        DocumentBuilder builder = factory.newDocumentBuilder();
        // 读取文件流
       AssetManager assetManager=getAssets();
        InputStream stream=assetManager.open("customers.xml");
        //InputStream stream = getResources().openRawResource(R.raw.customers);
        // 得到代表整个xml的Document对象
        Document document = builder.parse(stream);

        // 遍历所有节点
        Element root = document.getDocumentElement();
        // 获取根节点的所有customer的节点
        NodeList nodes = root.getElementsByTagName("customer");

        for (int index = 0; index < nodes.getLength(); index++) {
            Person person = new Person();
            // 获取person元素节点
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子庆五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值