XML解析--DOM解析操作
发布时间:2020-12-15 22:49:36 所属栏目:百科 来源:网络整理
导读:XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。 基本的解析方式有两种,一种叫SAX,另一种叫DOM。 DOM是基于XML文档树结构的解析, SAX是基于事件流的解析。 DOM解析的有点在与不仅可以读取文件,本身也可以生成和修改XML文件。 今天来看一
XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。 基本的解析方式有两种,一种叫SAX,另一种叫DOM。 DOM是基于XML文档树结构的解析,SAX是基于事件流的解析。 DOM解析的有点在与不仅可以读取文件,本身也可以生成和修改XML文件。 今天来看一下DOM的解析操作: 比如有这样一个XML文件:
<?xml version="1.0" encoding="gb2312"?> <addresslist> <linkman> <name>小明</name> <email>sdfa@126.com</email> </linkman> <linkman> <name>王帅</name> <email>mlda@163.com</email> </linkman> </addresslist> 下面用DOM进行解析操作:
package org.lxh.xml.dom; 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 DOM { /** * @param args * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ public static void main(String[] args) throws ParserConfigurationException,SAXException,IOException { //建立DocumentBuilderFactory,用于取得DocumentBuilder DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); //通过DocumentBuilderFactory取得DocumentBuilder DocumentBuilder builder=null; builder=factory.newDocumentBuilder(); //定义Document的接口对象,通过对DocumentBuilder类进行DOM树的转换操作 Document doc=null; //读取指定路径的XML文件 doc=(Document) builder.parse("F:"+File.separator+"test.xml"); //查找linkman节点 NodeList nl=((org.w3c.dom.Document) doc).getElementsByTagName("linkman"); //读取第一个节点的内容 for(int x=0;x<nl.getLength();x++){ //循环输出每一个节点 Element m=(Element) nl.item(x); System.out.println("姓名:+"m.getElementsByTagName("name").item(0).getFirstChild().getNodeValue()); System.out.println("邮箱:+"m.getElementsByTagName("email").item(0).getFirstChild().getNodeValue()); } } } 输出结果是: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |