首先xml文件的格式要知道,内容的类型,创建一个相应的bean包
DOM解析XML
// 首先创建一个:DocumentBuilderFactory
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
//创建一个:DocumentBuilder
try {
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
// 获取手机中的xml文件
Document document = documentBuilder.parse(new File(Environment.getExternalStorageDirectory()+"/book.xml"));
//将文件中的内容存放到这个集合中
NodeList nodeList = document.getElementsByTagName("book");
//便利取值
for(int i=0;i<nodeList.getLength();i++){
// 降值保存到Element
Element element = (Element) nodeList.item(i);
//获取相应的值
String name = element.getElementsByTagName("name").item(0).getFirstChild().getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
SAX解析XML
对sax解析没好好学习,希望能上网补全
PULL解析XML
// 读取到XML文件的流
InputStream inputStream = httpURLConnection.getInputStream();
Log.e("log", "123" + inputStream);
// 创建一个XML解析工厂
XmlPullParser xmlPullParser = Xml.newPullParser();
// 解析文件
xmlPullParser.setInput(inputStream, "UTF-8");
// 获取文档的读取段落
int type = xmlPullParser.getEventType();
// 判断读取文档是结束a
while (type != XmlPullParser.END_DOCUMENT)
switch (type) {
// 开始文档
case XmlPullParser.START_DOCUMENT:
// 创建一个集合
list = new ArrayList<NewsLong>();
Log.e("log", "读取XML开始");
break;
// 开始标签
case XmlPullParser.START_TAG:
Log.e("log", "读取标签");
if ("tweet".equals(xmlPullParser.getName())) {
// 创建一个存放数据的类
newsLong = new NewsLong();
Log.e("log", "新建对象");
} else if ("id".equals(xmlPullParser.getName())) {
newsLong.setId(xmlPullParser.nextText());
Log.e("log", "保存id");
} else if ("portrait".equals(xmlPullParser.getName())) {
newsLong.setPortrait(xmlPullParser.nextText());
Log.e("log", "保存portrait");
} else if ("body".equals(xmlPullParser.getName())) {
newsLong.setBody(xmlPullParser.nextText());
Log.e("log", "保存body");
} else if ("pubDate".equals(xmlPullParser.getName())) {
newsLong.setPubDate(xmlPullParser.nextText());
Log.e("log", "保存pubDate");
Log.e("log", "保存到集合中");
list.add(newsLong);
}
break;
// 结束标签
case XmlPullParser.END_TAG:
Log.e("log", "结束标签");
break;
}
type = xmlPullParser.next();
//这一步至关重要
type = xmlPullParser.next();
}