【达内课程】dom4j解析XML

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010356768/article/details/81938244

聚合数据
https://www.juhe.cn/

这里写图片描述

这里写图片描述

新建assets文件夹https://blog.csdn.net/u010356768/article/details/78059754
把新建的xml文件放在这个文件夹下
这里使用的是上一节的books.xml
https://blog.csdn.net/u010356768/article/details/81901392

如何用dom4j解析xml

这里写图片描述
这里写图片描述

1、下载dom4j jar包
添加jar包

2、新建布局文件,给按钮添加点击事件
3、MainActivity

import android.content.res.AssetManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.InputStream;
import java.util.Iterator;
import java.util.List;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn_dom4j;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setViews();
    }

    private void setViews() {
        btn_dom4j = findViewById(R.id.btn_dom4j);

        btn_dom4j.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_dom4j:
                try {
                    parseBookXml();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;
        }
    }

    private void parseBookXml() throws Exception {
        //读取assets目录下的books.xml
        AssetManager assetManager = getAssets();
        InputStream is = assetManager.open("books.xml");
        //1\获取document对象
        SAXReader reader = new SAXReader();
        Document document = reader.read(is);
        //2\获取根节点
        Element root = document.getRootElement();
        //3\获取root下的所有book标签
        List<Element> books = root.elements();
        //遍历
        for(Element e:books){
            //e代表一个book标签,解析并打印标签内容
            Iterator<Element> ite = e.elementIterator();
            while (ite.hasNext()){
                Element childElement = ite.next();
                Log.d("info","标签名:"+childElement.getName()+";标签内容:"+childElement.getTextTrim());
            }
        }
    }
}

查看Log

    标签名:isbn;标签内容:ABC-135-4BC
    标签名:name;标签内容:十万个为什么(1)
    标签名:price;标签内容:100
    标签名:author;标签内容:Dr.<Lee
    标签名:isbn;标签内容:ABC-136-4BC
    标签名:name;标签内容:十万个为什么(2)
    标签名:price;标签内容:200
    标签名:author;标签内容:Dr.Lee
    标签名:isbn;标签内容:ABC-137-4BC
    标签名:name;标签内容:十万个为什么(3)
    标签名:price;标签内容:300
    标签名:author;标签内容:Dr.Lee

更多dom4j使用,查看

https://www.oschina.net/uploads/doc/dom4j-1.6.1/index.html

猜你喜欢

转载自blog.csdn.net/u010356768/article/details/81938244