xml一共有三种解析放方法
①DOM解析
②SAX解析
③Android内置的Pull解析
getChildNodes()-获取某个元素(节点)的子节点;
getNodeType()-获取某个元素(节点)类型;
getAttribute()-获取某个元素(节点)的属性值;
getNodeValue()-获取节点值(文本内容)
getNodeName()-获取节点名称
getFirstChild()-获取某节点下的第一个子节点
getTextContent()-获取某节点下的文本内容
第一种 解析三层的
①DOM解析
//创建工厂类
DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
//创建DocumentBuilder
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
//创建Document
Document parse = newDocumentBuilder.parse(getAssets().open("asas.xml"));
//获取根元素
Element documentElement = parse.getDocumentElement();
//得到当前节点属性
String attribute = documentElement.getAttribute("category");
// textView.append(attribute+"\n");
//获取到元素集合
NodeList elementsByTagName = documentElement.getElementsByTagName("item");
//遍历
for (int i = 0; i <elementsByTagName.getLength(); i++) {
//得到当前的节点对象
Element element= (Element) elementsByTagName.item(i);
//得到节点元素
String id = element.getAttribute("id");
String name = element.getElementsByTagName("name").item(0).getTextContent();
// String ide = element.getElementsByTagName("ide").item(0).getTextContent();
String sex = element.getElementsByTagName("sex").item(0).getTextContent();
String age = element.getElementsByTagName("age").item(0).getTextContent();
// textView.append(id+"\n");
// textView.append(name+"\n");
// textView.append(age+"\n");
// textView.append(ide+"\n");
dao.insert(new User(name, age, sex));
//第一种 解析四层的
①DOM解析
//创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
//创建DocumentBuilder
DocumentBuilder builder = newInstance.newDocumentBuilder();
//创建Document
Document parse = builder.parse(getAssets().open(str));
//获取根元素
Element element = parse.getDocumentElement();
//获取元素集合
NodeList childNodes = element.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
//得到当前节点对象
Node item = childNodes.item(i);
if ("china".equals(item.getNodeName())) {
Element element2=(Element) childNodes.item(i);
NodeList elementsByTagName = element2.getElementsByTagName("book");
for (int j = 0; j < elementsByTagName.getLength(); j++) {
Element element3=(Element) elementsByTagName.item(j);
String name = element3.getElementsByTagName("name").item(0).getTextContent();
String price = element3.getElementsByTagName("price").item(0).getTextContent();
String author = element3.getElementsByTagName("author").item(0).getTextContent();
list2.add(new Books(name, author, price));
}
} else if ("foreiner".equals(item.getNodeName())) {
Element element2=(Element) childNodes.item(i);
NodeList elementsByTagName = element2.getElementsByTagName("book");
for (int j = 0; j < elementsByTagName.getLength(); j++) {
Element element3=(Element) elementsByTagName.item(j);
String name = element3.getElementsByTagName("name").item(0).getTextContent();
String price = element3.getElementsByTagName("price").item(0).getTextContent();
String author = element3.getElementsByTagName("author").item(0).getTextContent();
list2.add(new Books(name, author, price));
}
}
}