java解析XML(DOM方式)

来源:互联网 发布:.net调用前台js函数 编辑:程序博客网 时间:2024/05/02 01:31

(一)DOM

采用DOM(Document Object Model)文档对象模型 方式首先会读取xml文档,然后在内存中形成一颗树形的结构,这个结构反应出xml文档的结构,然后就遍历树,提取出元素的内容。由于xml本身就是一种树形结构,所以DOM这种描述方法非常有效。但是由于DOM要把xml文档读取到内存中,所以如果xml文档非常大的话,那么就非常消耗内存(最大缺点)。DOM是一个对象化的xml数据接口。一个与语言无关平台无关的标准接口规范。

 

 

注意区分根节点和根元素节点,其中根节点代表整个文档,是解析xml文档的一个入口,获取xml文档的document对象,获取document对象后再去逐层解析xml,而根元素节点代表文档的根元素,在DOM规范中有四个重要的接口Document,Node,NodeList,NameNodeMap(和属性打交道,属性名称不能重复),在DOM中全部都是Node

下面是DOM解析xml文件的java代码

public static void test2()throws Exception{DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();Document document=documentBuilder.parse(new File("candidate.xml"));//上面这几步都是固定的NodeList nodeList=document.getElementsByTagName("PERSON");System.out.println(nodeList.getLength());System.out.println("================================");for(int i=0;i<nodeList.getLength();i++){Element element=(Element)nodeList.item(i);String contentName=element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();System.out.println(contentName);String contentADDRESS=element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();System.out.println(contentADDRESS);String contentTEL=element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();System.out.println(contentTEL);String contentFAX=element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();System.out.println(contentFAX);String contentEMAIL=element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();System.out.println(contentEMAIL);System.out.println("================================");}}


 

原创粉丝点击