WEB开发网
开发学院软件开发Java 实战 Groovy: 构建和解析 XML 阅读

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示:XML 似乎已经由来已久,实际上,实战 Groovy: 构建和解析 XML,XML 在 2008 年迎来了它的 10 年庆典,由于 Java™ 语言只比 XML 早几年出现,其中列出了我知道的语言<langstype="current"><language>Jav

XML 似乎已经由来已久。实际上,XML 在 2008 年迎来了它的 10 年庆典。由于 Java™ 语言只比 XML 早几年出现,因此有人认为对于 Java 开发人员来说,XML 是 始终存在的。

Java 语言创始人 Sun Microsystems 一直是 XML 的积极支持者。毕竟,XML 的平台独立性承诺能与 Java 语言的 “编写一次,随处运行” 的口号完美契合。由于这两种技术具备一些相同的特性,您可能会认为 Java 语言和 XML 能很好地相处。事实上,在 Java 语言中解析和生成 XML 不但奇特而且还复杂。

幸运的是,Groovy 引入了一些全新的、更加合理的方法来创建和处理 XML。在一些示例的帮助下(均可通过 下载 获取),本文向您展示了如何通过 Groovy 简化 XML 的构建和解析。

比较 Java 和 Groovy XML 解析

在 “for each 剖析” 的结束部分,我提供了一个如清单 1 所示的简单 XML 文档。(这次,我添加了 type 属性,稍微增加了它的趣味性。)


清单 1. XML 文档,其中列出了我知道的语言
<langs type="current"> 
 <language>Java</language> 
 <language>Groovy</language> 
 <language>JavaScript</language> 
</langs> 

在 Java 语言中解析这个简单的 XML 文档却丝毫不简单,如清单 2 所示。它使用了 30 行代码来解析 5 行 XML 文件。


清单 2. 在 Java 中解析 XML 文件
import org.xml.sax.SAXException; 
import org.w3c.dom.*; 
import javax.xml.parsers.*; 
import java.io.IOException; 
 
public class ParseXml { 
 public static void main(String[] args) { 
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
  try { 
   DocumentBuilder db = dbf.newDocumentBuilder(); 
   Document doc = db.parse("src/languages.xml"); 
 
   //print the "type" attribute 
   Element langs = doc.getDocumentElement(); 
   System.out.println("type = " + langs.getAttribute("type")); 
 
   //print the "language" elements 
   NodeList list = langs.getElementsByTagName("language"); 
   for(int i = 0 ; i < list.getLength();i++) { 
    Element language = (Element) list.item(i); 
    System.out.println(language.getTextContent()); 
   } 
  }catch(ParserConfigurationException pce) { 
   pce.printStackTrace(); 
  }catch(SAXException se) { 
   se.printStackTrace(); 
  }catch(IOException ioe) { 
   ioe.printStackTrace(); 
  } 
 } 
} 

1 2 3 4 5 6  下一页

Tags:实战 Groovy 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接