java XMLjava jdom解析xml...

您现在的位置:&&>>&&>>&&>>&&>>&正文
java解析xml的几种方式
  第一种:DOM。
  DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。
  DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成了一棵节点树。无论XML文档中所描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用DOM所生成的模型都是节点树的形式。也就是说,DOM强制使用树模型来访问XML文档中的信息。由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。
  DOM树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。然而,由于DOM分析器把整个XML文档转化成DOM树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。不过,由于DOM分析器所采用的树结构的思想与XML文档的结构相吻合,同时鉴于随机访问所带来的方便,因此,DOM分析器还是有很广泛的使用价值的。
  import java.io.F
  import javax.xml.parsers.DocumentB
  import javax.xml.parsers.DocumentBuilderF
  import org.w3c.dom.D
  import org.w3c.dom.E
  import org.w3c.dom.NodeL
  public class DomTest1
  public static void main(String[] args) throws Exception
  // step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器)
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  //&&&&& System.out.println("class name: " + dbf.getClass().getName());
  // step 2:获得具体的dom解析器
  DocumentBuilder db = dbf.newDocumentBuilder();
  //&&&&& System.out.println("class name: " + db.getClass().getName());
  // step3: 解析一个xml文档,获得Document对象(根结点)
  Document document = db.parse(new File("candidate.xml"));
  NodeList list = document.getElementsByTagName("PERSON");
  for(int i = 0; i & list.getLength(); i++)
  Element element = (Element)list.item(i);
  String content = element.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue();
  System.out.println("name:" + content);
  content = element.getElementsByTagName("ADDRESS").item(0).getFirstChild().getNodeValue();
  System.out.println("address:" + content);
  content = element.getElementsByTagName("TEL").item(0).getFirstChild().getNodeValue();
  System.out.println("tel:" + content);
  content = element.getElementsByTagName("FAX").item(0).getFirstChild().getNodeValue();
  System.out.println("fax:" + content);
  content = element.getElementsByTagName("EMAIL").item(0).getFirstChild().getNodeValue();
  System.out.println("email:" + content);
  System.out.println("--------------------------------------");
  import java.io.F
  import javax.xml.parsers.DocumentB
  import javax.xml.parsers.DocumentBuilderF
  import org.w3c.dom.A
  import org.
  import org.w3c.dom.D
  import org.w3c.dom.E
  import org.w3c.dom.NamedNodeM
  import org.w3c.dom.N
  import org.w3c.dom.NodeL
  * 使用递归解析给定的任意一个xml文档并且将其内容输出到命令行上
  * @author zhanglong
  public class DomTest3
  public static void main(String[] args) throws Exception
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document doc = db.parse(new File("student.xml"));
  //获得根元素结点
  Element root = doc.getDocumentElement();
  parseElement(root);
  private static void parseElement(Element element)
  String tagName = element.getNodeName();
  NodeList children = element.getChildNodes();
  System.out.print("&" + tagName);
  //element元素的所有属性所构成的NamedNodeMap对象,需要对其进行判断
  NamedNodeMap map = element.getAttributes();
  //如果该元素存在属性
  if(null != map)
  for(int i = 0; i & map.getLength(); i++)
  //获得该元素的每一个属性
  Attr attr = (Attr)map.item(i);
  String attrName = attr.getName();
  String attrValue = attr.getValue();
  System.out.print(" " + attrName + "=\"" + attrValue + "\"");
  System.out.print("&");
  for(int i = 0; i & children.getLength(); i++)
  Node node = children.item(i);
  //获得结点的类型
  short nodeType = node.getNodeType();
  if(nodeType == Node.ELEMENT_NODE)
  //是元素,继续递归
  parseElement((Element)node);
  else if(nodeType == Node.TEXT_NODE)
  //递归出口
  System.out.print(node.getNodeValue());
  else if(nodeType == MENT_NODE)
  System.out.print("&!--");
  Comment comment = (Comment)
  //注释内容
  String data = comment.getData();
  System.out.print(data);
  System.out.print("--&");
  System.out.print("&/" + tagName + "&");
  sax:SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。
  Java代码
  import java.io.F
  import javax.xml.parsers.SAXP
  import javax.xml.parsers.SAXParserF
  import org.xml.sax.A
  import org.xml.sax.SAXE
  import org.xml.sax.helpers.DefaultH
  public class SaxTest1
  public static void main(String[] args) throws Exception
【责编:ivy】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航使用dom4j解析xml文件,并封装为javabean对象 - 推酷
使用dom4j解析xml文件,并封装为javabean对象
dom4j是一个java的XML api,性能优异、功能强大、易于使用。这里使用dom4j对xml文件进行解析,并完成对文件的封装。
实现对xml文件的解析,主要使用到的是dom4j中的SAXReader类,该类的使用方法如下:
SAXReader 类
//构造SAXReader
SAXReader sr = new SAXReader();
//加载文件
Document doc = sr.read(File file)
//Document对象代表XML文件在内存中的印象
//取得根元素
Element getRootElement()
Element.getName()
Element.elements() //取得该元素下的所有直接子元素
Element.elementText(&str&) //从一个元素导航到另一个元素,并取出该元素的文本
Element.element(&str&); //导航到另一个元素
Element.attributeValue(&str&); //取得该元素对应的属性
该项目中由于使用到dom4j,因此需要将dom4j的jar文件build path到项目中。这里的XML文件使用了w3school中的一个xml例子,这里命名为book.xml,文件内容如下:
&bookstore&
&book category=&COOKING&&
&title lang=&en&&Everyday Italian&/title&
&author&Giada De Laurentiis&/author&
&year&2005&/year&
&price&30.00&/price&
&book category=&CHILDREN&&
&title lang=&en&&Harry Potter&/title&
&author&J K. Rowling&/author&
&year&2005&/year&
&price&29.99&/price&
&book category=&WEB&&
&title lang=&en&&Learning XML&/title&
&author&Erik T. Ray&/author&
&year&2003&/year&
&price&39.95&/price&
&/bookstore&
这里的XML文件并没有使用任何约束文件。但文件中涉及到子元素以及属性,因此需要对属性和子元素进行解析。根据XML文件的内容(将子元素和属性定义为javabean的字段),建立Book类,代码如下;
package cn.myseu.test.
public class Book {
public String getCategory() {
public void setCategory(String category) {
this.category =
public String getTitle() {
public void setTitle(String title) {
this.title =
public String getAuthor() {
public void setAuthor(String author) {
this.author =
public String getYear() {
public void setYear(String year) {
this.year =
public String getPrice() {
public void setPrice(String price) {
this.price =
上面的代码实现了对Book对象的封装。下面的程序将实现对该XML文件的解析,并将其存放到一个List中,然后打印该List中的所有元素。测试代码如下:
package cn.myseu.test.
import java.io.F
import java.util.ArrayL
import java.util.L
import org.dom4j.D
import org.dom4j.E
import org.dom4j.io.SAXR
public class Demo {
public static void main(String[] args) throws Exception {
SAXReader sr = new SAXReader();
Document document = sr.read(new File(&src/cn/myseu/test/xmlparser/book.xml&));
Element root = document.getRootElement();
List&Element& elementList = root.elements();
List&Book& bookList = new ArrayList();
for (Element e : elementList) {
Book book = new Book();
book.setTitle(e.elementText(&title&));
book.setAuthor(e.elementText(&author&));
book.setYear(e.elementText(&year&));
book.setPrice(e.elementText(&price&));
book.setCategory(e.attributeValue(&category&));
bookList.add(book);
for (Book book : bookList) {
System.out.println(&title:&+book.getTitle()+&\t category:&+book.getCategory()+&\t author:&+book.getAuthor()+&\t year:&+book.getYear()+&\t price:&+book.getPrice());
如上代码,实现了对XML文件的解析,并完成了对解析元素的封装。然后打印输出。输出结果如下:
title:Everyday Italian
category:COOKING
author:Giada De Laurentiis
price:30.00
title:Harry Potter
category:CHILDREN
author:J K. Rowling
price:29.99
title:Learning XML
category:WEB
author:Erik T. Ray
price:39.95
至此,整个XML文件的解析工作暂告一段落。这里仅仅完成了对XML文件的解析,因此也只使用到了一个SAXReader类,dom4j还可以实现更多的功能。在以后的博文中会进一步的学习与探讨。
ps:本篇博文仅仅为个人学习的学习笔记博文。
已发表评论数()
&&登&&&录&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见leizhimin 的BLOG
用户名:leizhimin
文章数:710
评论数:2591
注册日期:
阅读量:3874
阅读量:2334
阅读量:2592
51CTO推荐博文
Java通过XML Schema校验XML
XML的校验在XML处理中非常常见,如果没有有效的办法来校验XML的合法性,往往会导致很多问题。
XML的校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。DTD现在越来越不受欢迎了,在此选用XSD来校验。
Java校验XML是件和扯淡的事情,因为Sun的XML相关软件包会令你云里雾里。
W3C这块的XML相关的规范相当的多,这也是导致XML处理器起来费劲的主要原因。要想精通这些规范和相关的API,实在是异想天开(新的规范在不停出,越来越多!)。
校验的原理是通过读取解析XML的时候设置校验的XSD和校验错误处理器,顺便校验的。
下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
例子如下:
&?xml version="1.0"?& &note &&&&&&&&xmlns=".cn" &&&&&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &&&&&&&&xsi:schemaLocation=".cn file:///D:/_dev_stu/xsdtest/src/note.xml"& &&&&&to&George&/to& &&&&&from&John&/from& &&&&&heading&Reminder&/heading& &&&&&body&Don't forget the meeting this weekend!&/body& &/note&
&?xml version="1.0"?& &xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" &&&&&&&&&& targetNamespace=".cn" &&&&&&&&&& xmlns=".cn" &&&&&&&&&& elementFormDefault="qualified"& &&&&&xs:element name="note"& &&&&&&&&&xs:complexType& &&&&&&&&&&&&&xs:sequence& &&&&&&&&&&&&&&&&&xs:element name="to" type="xs:string"/& &&&&&&&&&&&&&&&&&xs:element name="from" type="xs:string"/& &&&&&&&&&&&&&&&&&xs:element name="heading" type="xs:string"/& &&&&&&&&&&&&&&&&&xs:element name="body" type="xs:string"/& &&&&&&&&&&&&&/xs:sequence& &&&&&&&&&/xs:complexType& &&&&&/xs:element& &/xs:schema&
import org.dom4j.D import org.dom4j.io.OutputF import org.dom4j.io.SAXR import org.dom4j.io.SAXV import org.dom4j.io.XMLW import org.dom4j.util.XMLErrorH import javax.xml.parsers.SAXP import javax.xml.parsers.SAXParserF import java.io.F /** * Java XML校验测试 * * @author leizhimin, 14:42:35 */ public class ValidataXMLTest { &&&&public static void main(String[] args) { &&&&&&&&validateXMLByXSD(); &&&&&&&&validateXMLByDTD(); &&&&} &&&&/** &&&& * 通过XSD(XML Schema)校验XML &&&& */ &&&&public static void validateXMLByXSD() { &&&&&&&&String xmlFileName = "Q:\\_dev_stu\\xsdtest\\src\\note.xml"; &&&&&&&&String xsdFileName = "Q:\\_dev_stu\\xsdtest\\src\\note.xsd"; &&&&&&&&try { &&&&&&&&&&&&//创建默认的XML错误处理器 &&&&&&&&&&&&XMLErrorHandler errorHandler = new XMLErrorHandler(); &&&&&&&&&&&&//获取基于 SAX 的解析器的实例 &&&&&&&&&&&&SAXParserFactory factory = SAXParserFactory.newInstance(); &&&&&&&&&&&&//解析器在解析时验证 XML 内容。 &&&&&&&&&&&&factory.setValidating(true); &&&&&&&&&&&&//指定由此代码生成的解析器将提供对 XML 名称空间的支持。 &&&&&&&&&&&&factory.setNamespaceAware(true); &&&&&&&&&&&&//使用当前配置的工厂参数创建 SAXParser 的一个新实例。 &&&&&&&&&&&&SAXParser parser = factory.newSAXParser(); &&&&&&&&&&&&//创建一个读取工具 &&&&&&&&&&&&SAXReader xmlReader = new SAXReader(); &&&&&&&&&&&&//获取要校验xml文档实例 &&&&&&&&&&&&Document xmlDocument = (Document) xmlReader.read(new File(xmlFileName)); &&&&&&&&&&&&//设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在 [url]http://sax.sourceforge.net/?selected=get-set[/url] 中找到。 &&&&&&&&&&&&parser.setProperty( &&&&&&&&&&&&&&&&&&&&"http:///xml/jaxp/properties/schemaLanguage", &&&&&&&&&&&&&&&&&&&&"http://www.w3.org/2001/XMLSchema"); &&&&&&&&&&&&parser.setProperty( &&&&&&&&&&&&&&&&&&&&"http:///xml/jaxp/properties/schemaSource", &&&&&&&&&&&&&&&&&&&&"file:" + xsdFileName); &&&&&&&&&&&&//创建一个SAXValidator校验工具,并设置校验工具的属性 &&&&&&&&&&&&SAXValidator validator = new SAXValidator(parser.getXMLReader()); &&&&&&&&&&&&//设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。 &&&&&&&&&&&&validator.setErrorHandler(errorHandler); &&&&&&&&&&&&//校验 &&&&&&&&&&&&validator.validate(xmlDocument); &&&&&&&&&&&&XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint()); &&&&&&&&&&&&//如果错误信息不为空,说明校验失败,打印错误信息 &&&&&&&&&&&&if (errorHandler.getErrors().hasContent()) { &&&&&&&&&&&&&&&&System.out.println("XML文件通过XSD文件校验失败!"); &&&&&&&&&&&&&&&&writer.write(errorHandler.getErrors()); &&&&&&&&&&&&} else { &&&&&&&&&&&&&&&&System.out.println("Good! XML文件通过XSD文件校验成功!"); &&&&&&&&&&&&} &&&&&&&&} catch (Exception ex) { &&&&&&&&&&&&System.out.println("XML文件: " + xmlFileName + " 通过XSD文件:" + xsdFileName + "检验失败。\n原因: " + ex.getMessage()); &&&&&&&&&&&&ex.printStackTrace(); &&&&&&&&} &&&&} &&&&/** &&&& * 通过DTD校验XML &&&& */ &&&&public static void validateXMLByDTD() { &&&&&&&&//todo:暂时不用,以后再说吧 &&&&} }
Good! XML文件通过XSD文件校验成功!
&本文出自 “” 博客,转载请与作者联系!
了这篇文章
类别:┆阅读(0)┆评论(0)
11:07:24 16:36:56 15:33:11 20:46:58 10:37:17 10:49:24 10:50:51 16:12:23java中XML格式的字符串4读取方式的简单比较 -
- ITeye技术网站
1.java自带的DOM解析.
import java.io.StringR&&
import javax.xml.parsers.DocumentB&&
import javax.xml.parsers.DocumentBuilderF&&
import org.w3c.dom.D&&
import org.w3c.dom.E&&
import org.w3c.dom.N&&
import org.w3c.dom.NodeL&&
import org.xml.sax.InputS&&
public class ReaderXmlForDOM {&&
&&& public static void main(String args[]) {&&
&&&&&&&&& String text ="&XML&&A&123&/A&&B&whl123&/B&&C&亮亮&/C&&D&1&/D&&E&1&/E&&F&165074&/F&&G&贫穷&/G&&H&1698.0&/H&&I&初级士官&/I&&J&湖南&/J&&K&常德&/K&&L&1&/L&&/XML&"&
&&&&&&&&&&&
&&&&&&&& long begin = System.currentTimeMillis();&&
&&&&&&&&& parse( text );&&
&&&&&&&& long after = System.currentTimeMillis();&&
&&&&&&&&& System.out.println("DOM用时"+(after-begin)+"毫秒");&&
&&&&&&&& }&&
&&& public static void parse(String protocolXML) {&&
&&&&&&&&&&&
&&&&&&& try {&&
&&&&&&&&&&&& DocumentBuilderFactory factory = DocumentBuilderFactory&&
&&&&&&&&&&&&&&&&&&&& .newInstance();&&
&&&&&&&&&&&& DocumentBuilder builder = factory.newDocumentBuilder();&&
&&&&&&&&&&&& Document doc = builder&&
&&&&&&&&&&&&&&&&&&&& .parse(new InputSource(new StringReader(protocolXML)));&&
&&&&&&&&&&&& Element root = doc.getDocumentElement();&&
&&&&&&&&&&&& NodeList books = root.getChildNodes();&&
&&&&&&&&&&& if (books != null) {&&
&&&&&&&&&&&&&&& for (int i = 0; i & books.getLength(); i++) {&&
&&&&&&&&&&&&&&&&&&&& Node book = books.item(i);&&
&&&&&&&&&&&&&&&&&&&& System.out.println("节点=" + book.getNodeName() + "\ttext="&
&&&&&&&&&&&&&&&&&&&&&&&&&&&& + book.getFirstChild().getNodeValue());&&
&&&&&&&&&&&&&&&& }&&
&&&&&&&&&&&& }&&
&&&&&&&& } catch (Exception e) {&&
&&&&&&&&&&&& e.printStackTrace();&&
&&&&&&&& }&&
我当时dom解析用时是个不稳定的值在62-78毫秒之间.
以下的三种方法mian方法里面都是一样的解析那段字符串,记录用时,就不在贴出, 只贴出所用的解析部分
2.java自带的SAX解析.
import javax.xml.parsers.SAXP&&
import javax.xml.parsers.SAXParserF&&
import org.xml.sax.InputS&&
import org.xml.sax.SAXE&&
import org.xml.sax.helpers.DefaultH&&
public class ReaderXmlForSAX {&&
public static void parse(String protocolXML) {&&
&&&&&&&&&&&
&&&&&&& try {&&
&&&&&&&&&&&& SAXParserFactory saxfac = SAXParserFactory.newInstance();&&&&&
&&&&&&&&&&&& SAXParser saxparser = saxfac.newSAXParser();&&
&&&&&&&&&&&& TestSAX&& tsax = new TestSAX();&&
&&&&&&&&&&&& saxparser.parse(new InputSource(new StringReader(protocolXML)),tsax);&&
&&&&&&&& } catch (Exception e) {&&
&&&&&&&&&&&& e.printStackTrace();&&
&&&&&&&& }&&
class TestSAX extends DefaultHandler{&&
&&& private StringB&&
&&& private S&&
&&& public TestSAX(){&&
&&&&&&&& super();&&
&&& public void startDocument() throws SAXException{&&
&&&&&&&& buf=new StringBuffer();&&
&&&&&&&& System.out.println("*******开始解析XML*******");&&
&&& public void endDocument() throws SAXException{&&&&&&&&&&
&&&&&&&& System.out.println("*******XML解析结束*******");&&
&&& public void endElement(String namespaceURI,String localName,String fullName )throws SAXException{&&
&&&&&&&& str = buf.toString();&&
&&&&&&&& System.out.println("节点="+fullName+"\tvalue="+buf+" 长度="+buf.length());&&
&&&&&&&& System.out.println();&&
&&&&&&&& buf.delete(0,buf.length());&&
&&&&&& }&&
&&& public void characters( char[] chars, int start, int length )throws SAXException{&&
&&&&&&& //将元素内容累加到StringBuffer中&&
&&&&&&&& buf.append(chars,start,length);&&
SAX用时是62毫秒,最快的.但是需要多写一个类
3.DOM4J解析,需要下载对应的jar包
import java.util.I&&
import java.util.L&&
import org.dom4j.D&&
import org.dom4j.DocumentH&&
import org.dom4j.E&&
public class ReaderXmlForDOM4J {&&
//DOM4j解析XML&&
&&& public static void parse(String protocolXML) {&&
&&&&&&&&&&
&&&&&&& try {&&
&&&&&&&&&&&& Document doc=(Document)DocumentHelper.parseText(protocolXML);&&
&&&&&&&&&&&& Element books = doc.getRootElement();&&
&&&&&&&&&&&& System.out.println("根节点"+books.getName());&&
&&&&&&&&&&& // Iterator users_subElements = books.elementIterator("UID");//指定获取那个元素&&
&&&&&&&&&&&& Iterator&& Elements = books.elementIterator();&&
&&&&&&&&&&& while(Elements.hasNext()){&&
&&&&&&&&&&&&&&& Element user = (Element)Elements.next();&&
&&&&&&&&&&&&&&& System.out.println("节点"+user.getName()+"\ttext="+user.getText());&&
&&&&&&&&&&&&&&& List&& subElements = user.elements();&&
&&&&&&&&&&& //&&& List user_subElements = user.elements("username");指定获取那个元素&&
//&&&&&&&&&&&&& System.out.println("size=="+subElements.size());&&
//&&&&&&&&&&&&& for( int i=0;i&subElements.size();i++){&&
//&&&&&&&&&&&&&&&&& Element ele = (Element)subElements.get(i);&&
//&&&&&&&&&&&&&&&&& System.out.print(ele.getName()+" : "+ele.getText()+" ");&&
//&&&&&&&&&&&&& }&&
&&&&&&&&&&&&&&& System.out.println();&&
&&&&&&&&&&& }&&
&&&&&&&& } catch (Exception e) {&&
&&&&&&&&&&&& e.printStackTrace();&&
&&&&&&&& }&&&&&&&&&&
DOM4J的用时为140毫秒,慢 并且还需要单独的jar包
4.JDOM解析,需要下载对应的jar包
import java.io.StringR&&
import java.util.L&&
import org.jdom.D&&
import org.jdom.E&&
import org.jdom.input.SAXB&&
import org.xml.sax.InputS&&
public class ReaderXmlForJDOM {&&
public static void parse(String protocolXML) {&&
&&&&&&&& SAXBuilder builder=new SAXBuilder(false);&&
&&&&&&& try {&&
&&&&&&&&&&&& Document doc = builder.build(new InputSource(new StringReader(protocolXML)));&&
&&&&&&&&&&&& Element eles = doc.getRootElement(); // 得到根元素&&
&&&&&&&&&&&& System.out.println("根节点"+eles.getName());&&
&&&&&&&&&&&&&&
&&&&&&&&&&&& List&Element& list = eles.getChildren(); // 得到元素的集合&&
&&&&&&&&&&& //List studentList = students.getChildren("student"); // 得到指定元素(节点)的集合&&
&&&&&&&&&&& if( list!=null){&&
&&&&&&&&&&&&&&& for (int i = 0; i & list.size(); i++) {&&
&&&&&&&&&&&&&&&&&&&& Element book = (Element)list.get(i);&&
&&&&&&&&&&&&&&&&&&&& System.out.println("节点=" + book.getName() + "\ttext="&
&&&&&&&&&&&&&&&&&&&&&&&&&&&& + book.getValue());&&
&&&&&&&&&&&&&&&& }&&
&&&&&&&&&&&&& }&&
&&&&&&&&&&&& } catch (Exception e) {&&
&&&&&&&&&&&& e.printStackTrace();&&
&&&&&&&& }&&
JDOM的用时为125毫秒,比较慢 并且还需要单独的jar包
浏览: 32243 次
来自: 广州
多谢 正需要
用的第一种 java自带的
不是原创呢,那就请把原创的地址放出来

我要回帖

更多关于 java解析xml文件 的文章

 

随机推荐