package com.imooc.learn2;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMTest {
public static void main(String[] args) {
//创建一个DocumentBuilderFactory对象
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try {
//创建一个DocumentBuilder对象
DocumentBuilder builder=dbf.newDocumentBuilder();
//创建一个Document对象
Document root=builder.parse("demo/Books.xml");
//获取所有book的节点
NodeList books=root.getElementsByTagName("book");
//打印数量
System.out.println("一共有"+books.getLength()+"本书");
for (int i = 0; i < books.getLength(); i++) {
//获取单一的节点
Node a=books.item(i);
System.out.println("===========现在开始遍历"+(i+1)+"本书的内容======");
//获取该节点的所有属性和值
NamedNodeMap c=a.getAttributes();
System.out.println("第"+(i+1)+"本书共有"+c.getLength()+"个属性");
// for (int j = 0; j < c.getLength(); j++) {
// //通过item方法获取某一个属性
// Node item=c.item(j);
// //获取属性名
// System.out.println("属性名:"+item.getNodeName());
// //获取属性值
// System.out.println("属性值:"+item.getNodeValue());
// }
//有且知道book节点有且只有一个属性,强制类型转换转换成Element类型
Element bood=(Element) books.item(i);
//使用getAttribute的方法获取属性值
String key=bood.getAttribute("id");
System.out.println("id的属性值为:"+key);
System.out.println("===========结束遍历第"+(i+1)+"本书的内容======");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMTest {
public static void main(String[] args) {
//创建一个DocumentBuilderFactory对象
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try {
//创建一个DocumentBuilder对象
DocumentBuilder builder=dbf.newDocumentBuilder();
//创建一个Document对象
Document root=builder.parse("demo/Books.xml");
//获取所有book的节点
NodeList books=root.getElementsByTagName("book");
//打印数量
System.out.println("一共有"+books.getLength()+"本书");
for (int i = 0; i < books.getLength(); i++) {
//获取单一的节点
Node a=books.item(i);
System.out.println("===========现在开始遍历"+(i+1)+"本书的内容======");
//获取该节点的所有属性和值
NamedNodeMap c=a.getAttributes();
System.out.println("第"+(i+1)+"本书共有"+c.getLength()+"个属性");
// for (int j = 0; j < c.getLength(); j++) {
// //通过item方法获取某一个属性
// Node item=c.item(j);
// //获取属性名
// System.out.println("属性名:"+item.getNodeName());
// //获取属性值
// System.out.println("属性值:"+item.getNodeValue());
// }
//有且知道book节点有且只有一个属性,强制类型转换转换成Element类型
Element bood=(Element) books.item(i);
//使用getAttribute的方法获取属性值
String key=bood.getAttribute("id");
System.out.println("id的属性值为:"+key);
System.out.println("===========结束遍历第"+(i+1)+"本书的内容======");
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}