使用DOM解析器得到xml文件中的信息

来源:互联网 发布:java发送邮件给多人 编辑:程序博客网 时间:2024/06/05 01:57
try {
//1.得到DOM解析器的工厂实例
DocumentBuilderFactory dfb=DocumentBuilderFactory.newInstance();
//从DOM工厂获得DOM解析器
DocumentBuilder  db=dfb.newDocumentBuilder();
//解析XML文档,得到Document,即DOM树
Document doc=db.parse("dog.xml");
//得到所有<DOG>节点的列表信息
NodeList dogList=doc.getElementsByTagName("dog");
System.out.println("XML文档中共有"+dogList.getLength()+"条狗狗信息");
//循环遍历xml中信息
for(int i=0;i<dogList.getLength();i++){
//获取第i歌狗狗元素的信息
Node dog=dogList.item(i);
//获取第i个狗狗元素的id属性的值并输出
Element element=(Element)dog;
String attrValue=element.getAttribute("id");
System.out.println("id"+attrValue);
//获取第i个狗狗元素的所有子元素的名称并输出
for(Node node=dog.getFirstChild();node!=null; node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
String name=node.getNodeName();
String value=node.getFirstChild().getNodeValue();
System.out.println(name+":"+value+"\t"+"\n");
}

}
}
} 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();

}

===============================================================================================================================

dog.xml

<?xml  version="1.0" encoding="utf-8"?>
<dogs>
<dog id="1">
<name>001</name>
<health>良好</health>
<love>1</love>
<strain>普通</strain>
</dog>        
</dogs>