try {
//1 获得 构造document对象的工厂
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(getAssets().open("data.xml")); //地址根据自己情况进行修改
//获得根元素 <persons>
Element element = doc.getDocumentElement();
//获得 <persons> 下直接子节点
NodeList childNodes = element.getChildNodes();
int length = childNodes.getLength();
Toast.makeText(this, "元素个数:"+length, 0).show();
//childNodes 底层是集合
for(int i=0;i<childNodes.getLength();i++){
Node item = childNodes.item(i);
//判断item是不是 元素 <person>
if(item.getNodeType()==Node.ELEMENT_NODE){
Person p=new Person(); //创建java没有属性值的对象
//<person id=1 />
Element e=(Element) item; //把父类
String id = e.getAttribute("id");
p.setId(Integer.parseInt(id.trim())); //把读取的id的值去掉空格转为int类型
Log.d("TAG", "id:+++++++"+id);
//获取<person>下的 子干
NodeList nameages = e.getChildNodes(); //e=<person>--getChildNodes--> <name> <age> ....
//如果<person>下没有空白 --->for循环2次 分别 <name><age>
for(int j=0;j<nameages.getLength();j++){
Node node = nameages.item(j); //<name> <age> ....
if(node.getNodeType()==Node.ELEMENT_NODE){ //过滤空白后---->第一次进入if <name>
Element childe= (Element) node;//node---><name>
Node child = childe.getFirstChild() ;//取name 下的值 <name>李四</name>
String value = child.getNodeValue().trim();
if(node.getNodeName().equals("name")){
p.setName(value);
}else if(node.getNodeName().equals("age")){
p.setAge(Integer.parseInt(value));
}
}
}
pers.add(p);
}
}
Log.d("TAG", "length:+++++++"+pers);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//1 获得 构造document对象的工厂
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(getAssets().open("data.xml")); //地址根据自己情况进行修改
//获得根元素 <persons>
Element element = doc.getDocumentElement();
//获得 <persons> 下直接子节点
NodeList childNodes = element.getChildNodes();
int length = childNodes.getLength();
Toast.makeText(this, "元素个数:"+length, 0).show();
//childNodes 底层是集合
for(int i=0;i<childNodes.getLength();i++){
Node item = childNodes.item(i);
//判断item是不是 元素 <person>
if(item.getNodeType()==Node.ELEMENT_NODE){
Person p=new Person(); //创建java没有属性值的对象
//<person id=1 />
Element e=(Element) item; //把父类
String id = e.getAttribute("id");
p.setId(Integer.parseInt(id.trim())); //把读取的id的值去掉空格转为int类型
Log.d("TAG", "id:+++++++"+id);
//获取<person>下的 子干
NodeList nameages = e.getChildNodes(); //e=<person>--getChildNodes--> <name> <age> ....
//如果<person>下没有空白 --->for循环2次 分别 <name><age>
for(int j=0;j<nameages.getLength();j++){
Node node = nameages.item(j); //<name> <age> ....
if(node.getNodeType()==Node.ELEMENT_NODE){ //过滤空白后---->第一次进入if <name>
Element childe= (Element) node;//node---><name>
Node child = childe.getFirstChild() ;//取name 下的值 <name>李四</name>
String value = child.getNodeValue().trim();
if(node.getNodeName().equals("name")){
p.setName(value);
}else if(node.getNodeName().equals("age")){
p.setAge(Integer.parseInt(value));
}
}
}
pers.add(p);
}
}
Log.d("TAG", "length:+++++++"+pers);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}