【達內課程】dom4j解析XML
阿新 • • 發佈:2019-02-19
如何用dom4j解析xml
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