W3C Document对象解析XML

合集下载

java xmldocument类的用法

java xmldocument类的用法

一、概述Java语言是一种跨评台的面向对象编程语言,被广泛应用于企业级应用程序开发领域。

XML(可扩展标记语言)是一种通用的标记语言,用于描述数据的结构和内容。

在Java中,XMLDocument类被用来表示一个XML文档,可以对XML文档进行创建、解析、修改和验证等操作。

二、XMLDocument类的概述1. XMLDocument类位于org.w3c.dom包中,是DOM(文档对象模型)的一部分。

它表示了整个XML文档的树形结构,包括文档的根节点、元素节点、属性节点、文本节点等。

2. XMLDocument类实现了Document接口,提供了操作XML文档的方法。

三、XMLDocument类的基本用法1. 创建XMLDocument对象可以通过DocumentBuilder类的实例来创建一个空的XMLDocument对象。

首先需要创建一个DocumentBuilder对象,然后使用它来创建一个Document对象。

2. 解析XML文档XMLDocument类提供了方法来解析XML文档,例如通过解析器(如SAX解析器或DOM解析器)解析XML文档,并将其转换为XMLDocument对象。

3. 遍历XML文档XMLDocument类提供了方法来遍历XML文档的节点,例如获取文档的根节点、获取子节点、获取父节点、获取兄弟节点等。

4. 修改XML文档XMLDocument类提供了方法来对XML文档进行修改,例如添加节点、删除节点、修改节点的属性和文本内容等。

5. 验证XML文档XMLDocument类提供了方法来验证XML文档的合法性,例如验证文档的结构、验证文档的数据类型等。

6. 将XMLDocument对象序列化为XML文档XMLDocument类提供了方法来将XMLDocument对象序列化为XML文档的字符串表示,以便于存储或传输。

四、XMLDocument类的示例代码以下是一个简单的示例代码,演示了如何创建一个XMLDocument对象,并对其进行一些基本操作。

C#使用DOM解析XML

C#使用DOM解析XML

C#使用XML实现DOMDOM的全称是Document Object Model(文档对象模型),它是来自W3C的官方标准,它允许按照W3C标准W3C DOM Level1和W3C DOM Level2的规范所定义的规则,通过编程来读取,操纵和修改XML文档。

DOM的工作方式是:首先将XML文档一次性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”也就是一个文档对象模型,这里的含义其实是把文档对象化,文档中每个节点对应着模型中一个对象,而我们都知道对象提供编程接口,所以在Application中我们正是使用这组对象来访问XML文档进而操作XML文档,下图阐述了Application和DOM交互的过程:DOM既然是在内存中创建树型结构视图进而提供编程接口,那我们就以下面这个XML 片段来说明DOM是如何创建树型结构的:<parent><child id=”123”>text here</child></parent>如果用DOM加载以上文档,它将在内存中创建的树型结构如下图:DOM的关键在于它允许直接更新内存中的树型结构,而不必重定向到其他输出,因此,添加、更新或删除结构中信息的操作效率更高。

而作为程序员的我们重要的是要了解DOM 所提供的编程接口以实现对XML文档进行操作。

.NET Framework定义了一组类用于反映DOM的体系结构,下面来看一下.NET DOM 的继承结构:在上图中所有弧角矩形中所包含的类描述了所有可能在XML文档中出现的节点类型,而操作XML文档不外乎是操作其中的节点,这些类又都是从XmlNode类派生而来,所以这里讨论XmlNode类和它的子类XmlDocument,下面对这些类做简单的介绍:XmlNode类:该类是DOM中所有其他节点的抽象基类,它定义所有在更低级的类中继承或重写的成员。

它表示XML文档中的单一节点,它提供了用于导航DOM树型结构的基本方法和属性,使用XmlNodeType枚举器可以枚举其下的所有节点类型。

w3c标准 xml

w3c标准 xml

w3c标准 xmlXML是一种可扩展标记语言(Extensible Markup Language),它是W3C (World Wide Web Consortium)制定的一种标准,用于标记电子文件使其具有结构性的标记语言。

XML被设计用来传输和存储数据,同时也被广泛应用于Web开发中。

本文将着重介绍W3C标准XML的相关内容。

首先,XML的设计宗旨是为了传输数据。

它是一种文本格式,可以被任何程序读取和创建。

XML的灵活性使其成为一种理想的数据交换格式。

它可以被用于在不同的系统之间传输和存储数据,而无需考虑这些系统的硬件和软件平台。

其次,XML的语法规则非常严格。

它使用标签来标记数据,这些标签必须成对出现,并且必须严格遵循嵌套规则。

XML还支持自定义标签,因此可以根据具体需求来定义数据的结构。

这种灵活性使得XML成为一种非常强大的数据格式。

另外,XML还支持数据的验证。

通过使用DTD(Document Type Definition)或者XML Schema,可以对XML文档的结构进行验证,确保数据的完整性和一致性。

这对于数据交换和数据存储非常重要,尤其是在大型系统中。

XML还可以与其他技术结合使用,例如XSLT(Extensible Stylesheet Language Transformations)可以用来对XML文档进行转换和处理,XPath可以用来定位XML文档中的特定数据,XQuery可以用来查询XML文档中的数据等等。

这些技术的出现使得XML在Web开发中发挥了重要作用。

总的来说,XML作为W3C标准,具有良好的可扩展性、灵活性和强大的数据处理能力。

它在Web开发、数据交换和存储等方面发挥了重要作用,成为了一种不可或缺的技术。

同时,随着技术的不断发展,XML也在不断演化和完善,为我们带来了更多的可能性和便利性。

在今天的互联网时代,XML仍然是一种非常重要的技术。

它不仅可以用来传输和存储数据,还可以用来描述和定义数据的结构。

java使用document解析xml文件

java使用document解析xml文件

java使⽤document解析xml⽂件准备⼯作:1创建java⼯程2创建xml⽂档。

完成后看下⾯代码:import org.w3c.dom.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;public class Main {public static void main(String[] args) throws Exception {//创建⼀个⽂档解析器⼯⼚DocumentBuilderFactory fac= DocumentBuilderFactory.newInstance();//⽤上⾯的⼯⼚创建⼀个⽂档解析器DocumentBuilder builder=fac.newDocumentBuilder();//⽤上⾯的⽂档解析器解析⼀个⽂件放到document对象⾥Document doc=builder.parse("src/server.xml");//获取⽂档中节点名称为Listener的所有节点,并返回⼀个节点集合NodeList listenerList=doc.getElementsByTagName("Listener");System.out.println("⼀共有"+listenerList.getLength()+"个节点");//遍历整个集合(把所有标签名为Listener的节点⼀个⼀个拿出来for (int i=0;i<listenerList.getLength();i++){System.out.println("===========这是第"+(i+1)+"个listener节点的开始:===========");//把集合⾥的每⼀个listener节点分别拿出来Node node=listenerList.item(i);//再把上⼀个节点中的所有属性拿出来NamedNodeMap nodeMap= node.getAttributes();System.out.println("第"+(i+1)+"个节点⼀共有"+nodeMap.getLength()+"个属性");//遍历所有属性for(int j=0;j<nodeMap.getLength();j++){Node node1=nodeMap.item(j);System.out.println("第"+(j+1)+"个属性的名称是"+node1.getNodeName());System.out.println("第"+(j+1)+"个属性的值是"+node1.getNodeValue());}//获取节点的所有⼦节点,注意会把所有换⾏符也解析为⼦节点NodeList childNode=node.getChildNodes();//遍历所有⼦节点for(int k=0;k<childNode.getLength();k++){if(childNode.item(k).getNodeType()==Node.ELEMENT_NODE){//这个过滤条件是只将标签节点保留(换⾏符的节点就删去)}System.out.println("===========这是第"+(i+1)+"个节点的结束:===========");}}}为了⽅便记忆,在这⾥拆解⼀下。

xml格式讲解

xml格式讲解

xml格式讲解摘要:1.XML简介2.XML的基本语法3.标签和属性4.解析XML5.XML的应用场景正文:一、XML简介XML(可扩展标记语言)是一种用于描述数据结构和数据的标记语言。

它源于1998年由万维网联盟(W3C)推出的标准。

XML的设计目标是简化数据的共享和传输,使得不同的系统和平台能够互相理解数据。

与HTML相比,XML更加灵活和可扩展,适用于各种类型的数据。

二、XML的基本语法1.声明:XML文档的开始部分需要有一个声明,示例如下:```<?xml version="1.0" encoding="UTF-8"?>```2.元素:XML文档由多个嵌套的元素组成。

每个元素由开始标签、结束标签和中间的内容组成。

例如:```<root><child1>内容1</child1><child2>内容2</child2></root>```3.命名规则:XML元素名称必须遵循以下规则:- 名称以字母或下划线开头(首字母大写或小写均可);- 名称中间不能有空格;- 名称中只能包含字母、数字、连字符、下划线和点号;- 名称区分大小写;- 顶级元素(如`<root>`)必须使用名词。

三、标签和属性1.标签:XML标签用于标识文档中的不同部分。

标签可以分为开始标签(如`<root>`)和结束标签(如`</root>`)。

2.属性:XML元素可以使用属性来提供附加信息。

属性位于开始标签内,如下所示:```<root attr1="value1" attr2="value2">```3.属性值:XML属性值可以使用引号(单引号或双引号)括起来。

如果属性值中包含特殊字符,可以使用CData段(如下所示)或实体引用。

python实现XML解析的三种方法

python实现XML解析的三种方法

python实现XML解析的三种⽅法python实现XML解析的三种⽅法三种⽅法:⼀是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合;⼆是xml.sax.*模块,它是SAX API的实现,这个模块牺牲了便捷性来换取速度和内存占⽤,SAX是⼀个基于事件的API,这就意味着它可以“在空中”处理庞⼤数量的的⽂档,不⽤完全加载进内存;三是xml.etree.ElementTree模块(简称 ET),它提供了轻量级的Python式的API,相对于DOM来说ET 快了很多,⽽且有很多令⼈愉悦的API可以使⽤,相对于SAX来说ET的ET.iterparse也提供了 “在空中” 的处理⽅式,没有必要加载整个⽂档到内存,ET的性能的平均值和SAX差不多,但是API的效率更⾼⼀点⽽且使⽤起来很⽅便。

1、DOM(Document Object Model)⼀个 DOM 的解析器在解析⼀个 XML ⽂档时,⼀次性读取整个⽂档,把⽂档中所有元素保存在内存中的⼀个树结构⾥,之后你可以利⽤DOM 提供的不同的函数来读取或修改⽂档的内容和结构,也可以把修改过的内容写⼊xml⽂件。

python中⽤xml.dom.minidom来解析xml⽂件。

本⽂使⽤的⽰例⽂件movie.xml内容如下<collection shelf="New Arrivals"><movie title="Enemy Behind"><type>War, Thriller</type><format>DVD</format><year>2003</year><rating>PG</rating><stars>10</stars><description>Talk about a US-Japan war</description></movie><movie title="Transformers"><type>Anime, Science Fiction</type><format>DVD</format><year>1989</year><rating>R</rating><stars>8</stars><description>A schientific fiction</description></movie><movie title="Trigun"><type>Anime, Action</type><format>DVD</format><episodes>4</episodes><rating>PG</rating><stars>10</stars><description>Vash the Stampede!</description></movie><movie title="Ishtar"><type>Comedy</type><format>VHS</format><rating>PG</rating><stars>2</stars><description>Viewable boredom</description></movie></collection>python实现如下# !/usr/bin/python# -*- coding: UTF-8 -*-from xml.dom.minidom import parseimport xml.dom.minidom# 使⽤minidom解析器打开 XML ⽂档DOMTree = xml.dom.minidom.parse("movie.xml")#得到元素对象collection = DOMTree.documentElementif collection.hasAttribute("shelf"):print("Root element : %s" % collection.getAttribute("shelf"))#获取标签名#print(collection.nodeName)# 在集合中获取所有电影movies = collection.getElementsByTagName("movie")# 打印每部电影的详细信息for movie in movies:print("*****Movie*****")if movie.hasAttribute("title"):print("Title: %s" % movie.getAttribute("title"))type = movie.getElementsByTagName('type')[0]print("Type: %s" % type.childNodes[0].data)format = movie.getElementsByTagName('format')[0]print("Format: %s" % format.childNodes[0].data)year=movie.getElementsByTagName("year")if len(year)>0:print("Year: %s" % year[0].firstChild.data)#⽗节点 parentNode#print(year[0].parentNode.nodeName)rating = movie.getElementsByTagName('rating')[0]print("Rating: %s" % rating.childNodes[0].data)description = movie.getElementsByTagName('description')[0]# 显⽰标签对之间的数据print("Description: %s" % description.childNodes[0].data)#print("Description: %s" % description.firstChild.data)执⾏结果:Root element : New Arrivals*****Movie*****Title: Enemy BehindType: War, ThrillerFormat: DVDYear: 2003Rating: PGDescription: Talk about a US-Japan war*****Movie*****Title: TransformersType: Anime, Science FictionFormat: DVDYear: 1989Rating: RDescription: A schientific fiction*****Movie*****Title: TrigunType: Anime, ActionFormat: DVDRating: PGDescription: Vash the Stampede!*****Movie*****Title: IshtarType: ComedyFormat: VHSRating: PGDescription: Viewable boredom2、ElementTree(元素树)ElementTree就像⼀个轻量级的DOM,具有⽅便友好的API。

xml解析的四种方式

xml解析的四种方式

1)DOM(JAXP Crimson解析器)DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。

DOM是以层次结构组织的节点或信息片断的集合。

这个层次结构允许开发人员在树中寻找特定信息。

分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。

由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。

DOM 以及广义的基于树的处理具有几个优点。

首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。

它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。

DOM使用起来也要简单得多。

2)SAXSAX处理的优点非常类似于流媒体的优点。

分析能够立即开始,而不是等待所有的数据被处理。

而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。

这对于大型文档来说是个巨大的优点。

事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。

一般来说,SAX还比它的替代者DOM快许多。

选择DOM还是选择SAX?对于需要自己编写代码来处理XML文档的开发人员来说,选择DOM 还是SAX解析模型是一个非常重要的设计决策。

DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。

DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。

用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。

可以很容易的添加和修改树中的元素。

然而由于使用DOM解析器的时候需要处理整个XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。

由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。

SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。

JAVA 解析XML 文件的三种解析方法

JAVA 解析XML 文件的三种解析方法

创建解析XML文件的三种解析方法1、第一种用w3c解析package w3c;import java.io.File;import java.io.FileOutputStream;import java.util.Random;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;public class w3c {public static void main(String[] args) throws Exception{ createXml();}//创建XML文档并创建节点public static void createXml() throws Exception{//获取XML解析器工厂类DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//获取XML解析器DocumentBuilder db = dbf.newDocumentBuilder();//获取操作的document对象Document document = db.newDocument();//设置XML文件的版本document.setXmlVersion("1.0");//创建根节点Element root = document.createElement("students");//将根节点添加到document对象中document.appendChild(root);//声明一个姓名的数组String nameList[] = {"吕布","赵云","马超","张飞","关羽","许褚","孙策","周瑜","夏侯渊","张颌","于禁","黄忠","典韦","曹仁","程普"};String sexList[] = {"男","女"};//循环添加数据for(int i = 0 ;i < 20 ; i++){//创建根元素节点Element rootelement = document.createElement("student");//声明参数IDString id ="";//循环生成一个9为的随机ID数for(int j = 0; j< 9 ; j ++ ){id += new Random().nextInt(8)+1;}//设置根元素节点的属性rootelement.setAttribute("id",id);//将根元素节点添加到根节点中root.appendChild(rootelement);//设置元素节点Element name = document.createElement("name");Element sex = document.createElement("sex");Element age = document.createElement("age");Element phone = document.createElement("phone");//给元素节点赋值name.setTextContent(nameList[newRandom().nextInt(nameList.length)]);sex.setTextContent(sexList[newRandom().nextInt(sexList.length)]);age.setTextContent(new Random().nextInt(20)+20+"");String tel ="";for(int k = 0; k< 7 ; k++ ){tel += new Random().nextInt(9);}phone.setTextContent("0756-"+tel);//将元素节点添加到根元素节点中rootelement.appendChild(name);rootelement.appendChild(sex);rootelement.appendChild(age);rootelement.appendChild(phone);}//开始把Document映射到文件TransformerFactory transFactory =TransformerFactory.newInstance();Transformer transFormer = transFactory.newTransformer();//生成的XML文件File file = new File("w3c.xml");//判断XML文件存不存在,如果不存在则创建if(file.exists()){file.createNewFile();}//设置是否添加空格transFormer.setOutputProperty(OutputKeys.INDENT, "yes");//设置输出文件的格式transFormer.setOutputProperty(OutputKeys.ENCODING, "utf-8");//输出XML文件transFormer.transform(new DOMSource(document), newStreamResult(new FileOutputStream(file)));//输出XML文件的路径System.out.println(file.getAbsolutePath());}//解析XML文档public static void resolving() throws Exception{//获取XML解析器工厂类DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//获取XML解析器DocumentBuilder db = dbf.newDocumentBuilder();//获取操作的document对象Document document = db.parse(new File("w3c.xml"));//获取XML文件的根元素节点NodeList root = document.getElementsByTagName("student");//循环根元素节点信息for(int i = 0 ; i < root.getLength() ;i++){Element student = (Element)root.item(i);System.err.println("id = "+student.getAttribute("id")+" name = "+student.getElementsByTagName("name").item(0).getTextContent()+" sex = "+student.getElementsByTagName("sex").item(0).getTextContent()+" age = "+student.getElementsByTagName("age").item(0).getTextContent()+" phone = "+student.getElementsByTagName("phone").item(0).getTextContent());}}}2、第二种用jdom解析package jdom;import java.io.FileOutputStream;import java.util.Iterator;import java.util.List;import java.util.Random;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;import org.jdom.output.Format;import org.jdom.output.XMLOutputter;public class jdom {private static String xmlpath = "jdom.xml";public static void main(String[] args) throws Exception{ //resolving();createXml();}//创建XML文件并添加节点public static void createXml() throws Exception{ //创建document对象Document document = new Document();//创建根节点Element root = new Element("students");//将根节点添加到document对象中document.addContent(root);for(int i = 0 ;i < 20 ; i++){//创建根元素节点Element student = new Element("student");//声明参数IDString id ="";//循环生成一个9为的随机ID数for(int j = 0; j< 9 ; j ++ ){id += new Random().nextInt(8)+1;}//设置跟元素节点的属性student.setAttribute("id",id);//将根元素节点添加到根节点中root.addContent(student);//声明一个姓名的数组String nameList[] = {"吕布","赵云","马超","张飞","关羽","许褚","孙策","周瑜","夏侯渊","张颌","于禁","黄忠","典韦","曹仁","程普"};String sexList[] = {"男","女"};//创建元素节点Element name = new Element("name");Element sex = new Element("sex");Element age =new Element("age");Element phone = new Element("phone");//设置根元素节点的文本值name.setText(nameList[newRandom().nextInt(nameList.length)]);sex.setText(sexList[new Random().nextInt(sexList.length)]);age.setText(new Random().nextInt(20)+20+"");String tel ="";for(int k = 0; k< 7 ; k++ ){tel += new Random().nextInt(9);}phone.setText("0756-"+tel);//将元素节点添加到根元素节点中student.addContent(name);student.addContent(sex);student.addContent(age);student.addContent(phone);}//设置XML输出排版Format format = Format.getPrettyFormat();XMLOutputter out = new XMLOutputter(format);//输出XML文件out.output(document, new FileOutputStream(xmlpath));}//解析XML文档@SuppressWarnings("rawtypes")public static void resolving() throws Exception{//获取XML解析器SAXBuilder builder = new SAXBuilder();//获取document对象Document doucment = builder.build(xmlpath);//获取根节点Element students = doucment.getRootElement();//获取根元素节点List studentList = students.getChildren("student");//循环获取元素文本值,第一种方法for(int i = 0 ; i< studentList.size() ; i++ ){Element student = (Element)studentList.get(i);System.out.println("id ="+student.getAttributeValue("id")+" name = "+student.getChildText("name")+" sex = "+student.getChildText("sex")+" age = "+student.getChildText("age")+" phone = "+student.getChildText("phone"));}System.err.println("\n---------------------------------------------------------------------");//循环获取元素文本值,第二种方法for(Iterator iter=studentList.iterator();iter.hasNext();){ Element student = (Element)iter.next();System.out.println("id ="+student.getAttributeValue("id")+" name = "+student.getChildText("name")+" sex = "+student.getChildText("sex")+" age = "+student.getChildText("age")+" phone = "+student.getChildText("phone"));}}}3、第三种用dom4j解析package dom4j;import java.io.File;import java.io.FileWriter;import java.util.Iterator;import java.util.List;import java.util.Random;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class dom4j {private static String xmlpath = "dom4j.xml";public static void main(String[] args)throws Exception{//createXml();resolving();}public static void createXml() throws Exception{//创建document对象Document document = DocumentHelper.createDocument();//创建根节点Element root = DocumentHelper.createElement("studnets");//将根节点添加到document对象中document.setRootElement(root);for(int i = 0 ;i < 20 ; i++){//创建根元素节点并将根元素节点添加到根节点中Element student = root.addElement("student");//设置根元素节点的值//声明参数IDString id ="";//循环生成一个9为的随机ID数for(int j = 0; j< 9 ; j ++ ){id += new Random().nextInt(8)+1;}student.addAttribute("id",id);//创建元素节点并将元素节点添加到根元素节点中Element name = student.addElement("name");Element sex = student.addElement("sex");Element age = student.addElement("age");Element phone = student.addElement("phone");//声明一个姓名的数组String nameList[] = {"吕布","赵云","马超","张飞","关羽","许褚","孙策","周瑜","夏侯渊","张颌","于禁","黄忠","典韦","曹仁","程普"};String sexList[] = {"男","女"};//设置元素节点的文本值name.setText(nameList[newRandom().nextInt(nameList.length)]);sex.setText(sexList[new Random().nextInt(sexList.length)]);age.setText(new Random().nextInt(20)+20+"");String tel ="";for(int k = 0; k< 7 ; k++ ){tel += new Random().nextInt(9);}phone.setText("0756-"+tel);}//设置XML文件输出的格式OutputFormat format = new OutputFormat("\t", true);format.setEncoding("utf-8");XMLWriter xmlWriter = new XMLWriter(new FileWriter(xmlpath), format);//输出XML文件xmlWriter.write(document);xmlWriter.close();}//解析XML文件@SuppressWarnings("rawtypes")public static void resolving() throws Exception{//获取XML解析器SAXReader saxReader = new SAXReader();//获取document对象Document document = saxReader.read(new File(xmlpath));//获取根节点Element root = document.getRootElement();//获取根元素节点List chindList = root.elements();//循环获取元素文本值,第一种方法for(Iterator iter = chindList.iterator(); iter.hasNext();){ Element student =(Element)iter.next();System.out.println("id = "+student.attributeValue("id")+" name = "+student.elementText("name")+" sex = "+student.elementText("sex")+" age = "+student.elementText("age")+" phone = "+student.elementText("phone"));}System.err.println("\n---------------------------------------------------------------------");//循环获取元素文本值,第二种方法for(int i = 0 ; i< chindList.size() ; i++ ){Element student = (Element)chindList.get(i);System.out.println("id = "+student.attributeValue("id")+" name = "+student.elementText("name")+" sex = "+student.elementText("sex")+" age = "+student.elementText("age")+" phone = "+student.elementText("phone"));}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档