W3C Document对象解析XML
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#使用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标准 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⽂件准备⼯作: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格式讲解摘要: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解析的三种⽅法三种⽅法:⼀是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解析的四种方式

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 文件的三种解析方法

创建解析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"));}}}。