1.假设,现在我想用DOM实现读取该文件,并输出xml中元素的信息
E:\dom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <xml> <person> <name>张三</name> <age>23</age> <add>北京</add> </person> <person> <name>李四</name> <age>24</age> <add>西安</add> </person> <person> <name>王五</name> <age>25</age> <add>上海</add> </person> </xml>
package com.cissst.dom1; import java.io.File; 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.NodeList; import org.xml.sax.SAXException; public class DomTest { public static void main(String[] args){ //得到DocumentBuilderFactory的一个工厂对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder docuBuilder = null; Document document = null; try { //用工厂对象得到一个DocumentBuilder对象 docuBuilder = factory.newDocumentBuilder(); //设置要访问的xml文件路径 document = docuBuilder.parse("E:"+File.separator+"dom.xml"); //获取名称为name元素的节点内容 NodeList nl = document.getElementsByTagName("person"); for(int i=0;i<nl.getLength();i++){ //循环为每一个名字为person的节点转换成Element并输出元素的子节点中的内容 Element element = (Element)nl.item(i); System.out.print(element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue()); System.out.print(element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue()); System.out.println(element.getElementsByTagName("add").item(0).getFirstChild().getNodeValue()); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }