java解析xml之dom解析xml示例分享

代码如下:

package com.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class DomXML {

public static void main(String[] args) {
        try {
            File file = new File("e:/People.xml"); 
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
            DocumentBuilder builder = factory.newDocumentBuilder();  
            Document document = builder.parse(file);  
            Element element = document.getDocumentElement();

List<People> peopleList = new ArrayList<People>();
            NodeList peopleNodes = element.getElementsByTagName("People");
            for(int i=0;i<peopleNodes.getLength();i++){  
                People people = new People();
                Element peopleElement = (Element) peopleNodes.item(i);
                people.setId(peopleElement.getAttribute("id"));
                NodeList childPeopleNodes = peopleElement.getChildNodes();
                for(int j=0;j<childPeopleNodes.getLength();j++){
                    //DOM解析时候注意子节点前面的空格也会被解析
                    if(childPeopleNodes.item(j) instanceof Element){
                        Element childPeopleElement = (Element) childPeopleNodes.item(j);
                        if(childPeopleElement.getNodeType()==Node.ELEMENT_NODE){ 
                            if(childPeopleElement.getNodeName().equals("Name")){
                                people.setEnglishName(childPeopleElement.getAttribute("en"));
                                people.setName(childPeopleElement.getTextContent());
                            }
                            else if(childPeopleElement.getNodeName().equals("Age")){
                                people.setAge(childPeopleElement.getTextContent());   
                            }
                        }
                    }
                }
                peopleList.add(people);
            }

for(People people : peopleList){
                System.out.println(people.getId()+"\t"+people.getName()+"\t"+people.getEnglishName()+"\t"+people.getAge());
            }

} catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

}
}

(0)

相关推荐

  • javascript读取Xml文件做一个二级联动菜单示例

    复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>menu2level.html</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> &

  • javascript获取xml节点的最大值(实现代码)

    假设现在当前时间为7000毫秒.当时间为3000--6000是去3000的值,当6000--9000时取6000的值,即取xml中小于当前时间的最大值 xml文件, 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><catalog><cd><ID>2</ID><title>第1讲</title><mediaUrl>123&

  • java解析xml之dom4j解析xml示例分享

    复制代码 代码如下: package com.test; import java.io.File;import java.util.ArrayList;import java.util.Iterator;import java.util.List; import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader; public class Dom4jXML { public static void

  • java解析xml之jdom解析xml示例分享

    复制代码 代码如下: package com.test; import java.io.File;import java.util.ArrayList;import java.util.List; import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder; public class JdomXML { public static void main(String[] args) {     

  • java解析xml之sax解析xml示例分享

    复制代码 代码如下: package com.test; import java.io.File;import java.io.FileInputStream;import java.util.ArrayList;import java.util.List; import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes;import org.x

  • javascript读取xml实现javascript分页

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

  • JavaScript获取XML数据附示例截图

    Hot.xml文件 : 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?> <root> <item> <name>刘亦菲</name> <url>MingXing/LiuYiFei.htm</url> <color>red</color> </item> <item> <name

  • java dom4j解析xml文件代码实例分享

    解析xml文件有两种方式,一种是利用Dom去解析,这种方式写起代码比较麻烦,对于刚入手的程序员来说比较容易出问题:第二种就是使用Dom4j包去解析在要使用Dom4j包的时候,肯定要先引入包 复制代码 代码如下: import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;import java.util.Iterator; import org.dom4j.Docum

  • Java生成和解析XML格式文件和字符串的实例代码

    1.基础知识: Java解析XML一般有四种方法:DOM.SAX.JDOM.DOM4J. 2.使用介绍 1).DOM (1)简介 由W3C(org.w3c.dom)提供的接口,它将整个XML文档读入内存,构建一个DOM树来对各个节点(Node)进行操作.优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作:缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理. (2)示例代码: 复制代码 代码如下: <?xml version="1.0&quo

  • Java如何读取XML文件 具体实现

    今天的CSDN常见问题来讲解下在Java中如何读取XML文件的内容. 直接上代码吧,注释写的很清楚了! 复制代码 代码如下: import java.io.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;im

  • java使用dom4j解析xml配置文件实现抽象工厂反射示例

    逻辑描述: 现在我们想在B层和D层加上接口层,并使用工厂.而我们可以将创建B和创建D看作是两个系列,然后就可以使用抽象工厂进行创建了. 配置文件:beans-config.xml.service-class与dao-class分别对应两个系列的产品.子菜单中id对应接口的命名空间,class对应实现类的命名空间. 复制代码 代码如下: [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"

  • java使用xpath解析xml示例分享

    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起初 XPath 的提出的初衷是将其作为一个通用的.介于XPointer与XSL间的语法模型.但是 XPath 很快的被开发者采用来当作小型查询语言. XPathTest.java 复制代码 代码如下: package com.hongyuan.test; import java.io.File;import java

  • java使用jaxb操作xml示例

    首先定义两个示例类ClassA,ClassB,用于后续的示例演示 复制代码 代码如下: package cn.lzrabbit; public class ClassA {     private int classAId;     private String classAName; private ClassB classB; public int getClassAId() {         return classAId;     } public void setClassAId(i

  • javaScript如何生成xmlhttp

    复制代码 代码如下: function ajaxFunction(){ var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp = new XMLHttpRequest(); } catch (e) { try {// Internet Explorer xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new Active

  • java dom4j解析xml用到的几个方法

    1. 读取并解析XML文档: 复制代码 代码如下: SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取.得到的Document对象就带表了整个XML. 读取的字符编码是按照XML文件头定义的编码来转换.如果遇到乱码问题,注意要把各处的编码名称保持一致即可. 2. 取

  • java操作XML实例代码

    最近一直在做高效平台的框架,其实意识到我要做一个简单的框架的时候是在我已经做完我认为的一版界面之后,开始以为我要做的是一个可配置的首页展示,但是吭哧吭哧做了两个星期,大概功能实现了之后,才发现要做的不是这个,哎,需求不清楚害死人啊,但是这两个星期并没有白白浪费,也从中学到了很多东西,下面主要介绍读取XML.在做系统的时候,经常会遇到读取xml的需求,一开始是读取,于是我上网开始查询读取,接着查询删除,接着查询修改,当把这些代码查的差不多的时候,我发现,我为什么不把这些的操作都封装到一个类里,使用

  • javascript创建createXmlHttpRequest对象示例代码

    复制代码 代码如下: var xmlHttp; function createXmlHttpRequest()    {        if(window.XMLHttpRequest)        {            xmlHttp=new XMLHttpRequest(); if(xmlHttp.overrideMimeType)                {                    xmlHttp.overrideMimeType("text/xml")

  • java使用xpath和dom4j解析xml

    1 XML文件解析的4种方法 通常解析XML文件有四种经典的方法.基本的解析方式有两种,一种叫SAX,另一种叫DOM.SAX是基于事件流的解析,DOM是基于XML文档树结构的解析.在此基础上,为了减少DOM.SAX的编码量,出现了JDOM,其优点是,20-80原则(帕累托法则),极大减少了代码量.通常情况下JDOM使用时满足要实现的功能简单,如解析.创建等要求.但在底层,JDOM还是使用SAX(最常用).DOM.Xanan文档.另外一种是DOM4J,是一个非常非常优秀的Java XML API,

随机推荐