版权声明:本文为博主原创文章,未经博主允许不得转载。 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