2-1 使用DOM解析XML文件的属性名和属性值
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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;
import org.xml.sax.SAXException;
public class Test {
public static void main(String[] args) {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db=dbf.newDocumentBuilder();
Document document=db.parse("haha.xml");
//获取所有book结点的结合
NodeList nodelist=document.getElementsByTagName("book");
System.out.println("共有"+nodelist.getLength()+"本书");
for(int i=0;i<nodelist.getLength();i++){
// //通过item(i)方法 获取一个book结点 nodelist索引值从0开始
// Node book=nodelist.item(i);
// //获取book结点的所有属性
// NamedNodeMap attrs=book.getAttributes();
// System.out.println("第"+(i+1)+"本书有"+attrs.getLength()+"个属性");
// //遍历book的属性
// for(int j=0;j<attrs.getLength();j++){
// //通过item(index)方法获取bokk结点的每个属性
// Node attr=attrs.item(j);
// //获取属性名
// System.out.println(attr.getNodeName());
// //获取属性值
// System.out.println(attr.getNodeValue());
//
// }
//将book结点进行强制类型转换,转换成Element类型
Element book=(Element) nodelist.item(i);
String attrValue=book.getAttribute("id");
System.out.println("id的值为"+attrValue);
}
}
catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}