`

Java中如何解析XML文件(转)

    博客分类:
  • java
阅读更多

xml文件:"student.xml"

xml 代码

 

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE zmclass SYSTEM "student.dtd"> <zmclass id="0703"> <student sex="男"> <name>MICHAEL</name> <age>24</age> <address>武汉</address> </student> <student sex="女"> <name>王黎</name> <age>24</age> <address>武汉</address> </student> <student sex="男"> <name>莫智洲</name> <age>24</age> <address>武汉</address> </student> <student sex="男"> <name>曹锋</name> <age>23</age> <address>武汉</address> </student> </zmclass>


 dtd文件:"student.dtd"

 

python 代码
<!-- ELEMENT 元素 ATTLIST 属性 元素出现的次数: *: 从“0”到“N”。 +: 大于等于“1” ?: 是“0”或者是“1”。 默认: 只可能是“1”。 常用属性类型: CDATA:一般的文字。 ID:该属性在XML文件中是唯一的,常用来表示身份证。 ETC...... #REQUIRED 大写 #required 小写 表示在标记中必须出现此属性。 #IMPLIED 大写 #implied 小写 表示在标记中可以不出现的属性。 #FIX 大写 #fix 小写 表示在标记中是某个固定的值。 --> <!ELEMENT zmclass (student+)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ATTLIST zmclass id CDATA #REQUIRED> <!--建立“父子”关系--> <!ELEMENT zmclass (name,address,age)> <!ATTLIST student sex (男|女) #REQUIRED>

 java文件:"DomTest.java"
package test; /** * * @描述:解析XML文件的测试类。 * @作者: 赵明 * 2007-9-5 */ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; 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.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DomTest { public static void main(String[] args){ List stuArrList = new ArrayList();//创建用来保存学生信息的集合。 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("student.xml")); Element root = doc.getDocumentElement();//得到文档对象树。 //System.out.println(root); System.out.println("根元素名称:"+root.getTagName()); NodeList stuList = root.getElementsByTagName("student"); //开始逐个创建学生对象。 for(int i = 0; i < stuList.getLength();i++){ Student s = new Student(); Element stuE = (Element)stuList.item(i); //System.out.println(stuE); s.setSex(stuE.getAttribute("sex"));//向学生对象中写入性别属性。 NodeList stuInfoList = stuE.getChildNodes(); for(int j = 0;j < stuInfoList.getLength();j++){ Node temp = stuInfoList.item(j); if(temp.getNodeType()==Node.ELEMENT_NODE){//判断对象的类型的节点是不是元素。 Element tempE = (Element)temp;//转换类型到元素。 Node initW = tempE.getLastChild(); //Node initW = tempE.getFirstChild(); //由于只有一个节点,第一和最后一个都是同一个。 if("name".equals(tempE.getNodeName())){ s.setName(initW.getNodeValue());//加入姓名。 }if("age".equals(tempE.getNodeName())){ s.setAge((Integer.parseInt(initW.getNodeValue())));//加入年龄。 }if("address".equals(tempE.getNodeName())){ s.setAddress((initW.getNodeValue()));//加入地址。 } } } stuArrList.add(s);//添加进集合中。 } Iterator ite = stuArrList.iterator();//使用跌代器遍历集合元素。 while(ite.hasNext()){ Student s = (Student)ite.next(); System.out.println(s); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

 java 代码

java文件:"Student.java" 

java 代码
package test; /** * * @描述:学生类用来保存学生的信息。 * @作者: 赵明 * 2007-9-5 */ public class Student { private String name; private String sex; private int age; private String address; public String toString(){//覆盖该方法。 return name+"-"+sex+"-"+age+"-"+address; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }

 运行结果: 
ruby 代码
根元素名称:zmclass MICHAEL-男-24-武汉 王黎-女-24-武汉 莫智洲-男-24-武汉 曹锋-男-23-武汉

 

 

分享到:
评论

相关推荐

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    Java中如何解析XML文件

    Java中如何解析XML文件,创建xml文件,增、删、改、查 xml节点信息

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...

    java导入导出xml文件

    1. DOM解析:使用`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`创建一个解析器实例,然后调用`parse()`方法解析XML文件,返回一个`Document`对象。之后,可以通过`Document`对象的`...

    java 解析xml 多级

    本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:DOM(文档对象模型)和SAX(简单API for XML)。DOM解析器会将整个XML文件加载到内存中,形成一个树形...

    java 使用JDOM解析xml文件.docx

    在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和处理 XML 文件。本文将详细介绍如何使用 JDOM 解析 XML 文件。 JDOM 介绍 JDOM 是一个开源项目,基于树型结构,利用纯 Java ...

    Java解析xml所需jar包

    在这个场景中,提到的两个关键库是`dom4j`和`jdom`,它们都是Java解析XML的重要工具。 **dom4j** dom4j是一个非常灵活且功能丰富的Java XML API,它提供了对DOM(文档对象模型),SAX(简单API for XML)和JDOM的...

    Java批量解析XML文件指定字段数据提取

    * path: 指定 文件目录,如f:/xml/下所有的xml文件,含子目录的文件。 * header: 指定需解析的标识字段 key为主标识字段,value为需要提取数据的字段用逗号隔开。 * 连接数据库部分我已注释掉,需要可以直接...

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    xml文件自动转成java对象工具

    总之,XML文件自动转成Java对象工具是Java开发中不可或缺的一部分,它极大地简化了XML数据处理,提高了开发效率。通过理解和利用这类工具,开发者可以更专注于业务逻辑,而非基础的数据转换工作。

    java心电图xml解析.zip

    在Java中,有多种方式可以解析XML文档,主要包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。每种方法都有其优缺点,适用于不同的场景。 1. DOM解析:DOM是将整个...

    JAVA高手解析XML配置文件的读取操作.pdf

    本文主要讲解了 Java 中如何读取 XML 配置文件,并对 XML 解析器进行了分类,分别介绍了 DOM 和 SAX 两种解析方式的特点和使用场景,并提供了一个使用 SAX 解析器读取 XML 配置文件的示例程序。 在 Java 开发中,...

    利用java语言解析xml文件

    在MyEclipse中编写Java程序解析XML文件,首先需要安装并配置好DOM4J库。 #### 四、核心代码分析 下面详细介绍代码中的关键部分及其功能: 1. **导入必要的包**: ```java import org.dom4j.*; import org.dom4j...

    JAVA DOM解析XML文件过程详解

    在 JAVA 中,DOM 解析 XML 文件的过程主要涉及到以下几个步骤: 1. 创建一个 DocumentBuilderFactory 对象 DocumentBuilderFactory 是一个工厂类,用于创建 DocumentBuilder 对象。DocumentBuilder 对象是用于解析 ...

    JAVA JAXB 解析XML嵌套子节点为字符串

    使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml &lt;text&gt;Some text here ...

    java实现xml解析word文档代码实现

    document.xml 文件是基于 XML 格式的,可以使用 Java 中的 DOM 或 SAX 解析器来解析该文件。 3. 书签的 XML 结构 在 Word 文档中,书签是使用 `&lt;w:bookmarkStart&gt;` 和 `&lt;w:bookmarkEnd&gt;` 标签来表示的,其中 `...

    java利用jdom解析xml文件

    在Java中,JDOM提供了两种主要的方式来解析XML文件:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的,逐行解析文件,适用于大文件,内存消耗小;而DOM则将整个XML文件加载到内存中,...

    Java中写xml文件

    这段代码中,`transform`方法接受DOMSource对象作为输入,将其数据转换后写入StreamResult对象所表示的XML文件中。这样,XML文档的内容就被更新并保存到了指定的文件路径。 总的来说,Java中的XML文件处理主要依赖...

    java代码pdf解析成xml.rar

    1. **添加Maven依赖**:在`maven.txt`文件中,你应该找到了引入iTextPDF库的Maven依赖。通常,这会是一个类似于以下的条目: ```xml &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; &lt;artifactId&gt;itextpdf &lt;version&gt;5.x.y...

Global site tag (gtag.js) - Google Analytics