您的位置:首页 > 其它

DOM解析XML

2016-09-14 16:20 92 查看
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
paserXml();
}

// 解析XML
public void paserXml() {
// 得到解析xml对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
// 得到DocumentBuilder
DocumentBuilder db = dbf.newDocumentBuilder();
// 得到Document
Document doc = db.parse(getAssets().open("data1.xml"));
// 获得根元素 (根节点)
Element el = doc.getDocumentElement();
// 得到根元素下所有的子节点
NodeList childNodes = el.getChildNodes();
// 遍历出每一个根元素下的子节点
for (int i = 0; i < childNodes.getLength(); i++) {

// 按角表取得相应子节点
Node node = childNodes.item(i);
System.out.println("开始"+node.getNodeType());
// 判断节点是不是元素
if (node.getNodeType() == Node.ELEMENT_NODE) {
// 每一个子节点下的数据,都封装成一个对象
Student stu = new Student();
// 把节点转成元素
Element element = (Element) node;
// 得到当前元素的属性节点
String id = element.getAttribute("id");
stu.setId(Integer.parseInt(id));
// 得到<Student>节点的所有子节点
NodeList childNodes2 = element.getChildNodes();
System.out.println("childNodes2" + childNodes2.getLength());
for (int j = 0; j < childNodes2.getLength(); j++) {
Node node2 = childNodes2.item(j);
// 判断节点是不是元素
if (node2.getNodeType() == Node.ELEMENT_NODE) {
// 把节点转成元素节点
Element me1 = (Element) node2;
// 得到标签包含的文本(lee);
String value = me1.getFirstChild().getNodeValue();
if ("name".equals(me1.getNodeName())) {
stu.setName(value);
} else if ("age".equals(me1.getNodeName())) {
stu.setAge(Integer.parseInt(value));
}
}
System.out.println("结束"+node2.getNodeType());
}
System.out.println(stu.toString());
}
}

} catch (ParserConfigurationException e) {
System.out.println("ParserConfigurationException");
e.printStackTrace();
} catch (SAXException e) {
System.out.println("SAXException");
e.printStackTrace();
} catch (IOException e) {
System.out.println("IOException");
e.printStackTrace();
}

}
}


javabean

public class Student {
private int id;
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: