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

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 图 1 显示了清单 9 所构建的 HTML 的浏览器视图:图 1. 呈现的 HTML使用 StreamingMarkupBuilder 创建 XMLMarkupBuilder 非常适合用于同步构建简单的 XML 文档,对于更加高级的 XML 创建,实战 Groovy: 构建和解析 XML(7),

图 1 显示了清单 9 所构建的 HTML 的浏览器视图:


图 1. 呈现的 HTML
实战 Groovy: 构建和解析 XML

使用 StreamingMarkupBuilder 创建 XML

MarkupBuilder 非常适合用于同步构建简单的 XML 文档。对于更加高级的 XML 创建,Groovy 提供了一个 StreamingMarkupBuilder。通过它,您可以添加各种各样的 XML 内容,比如说处理指令、名称空间和使用 mkp 帮助对象的未转义文本(非常适合 CDATA 块)。清单 10 展示了有趣的 StreamingMarkupBuilder 特性:


清单 10. 使用 StreamingMarkupBuilder 创建 XML
def comment = "<![CDATA[<!-- address is new to this release -->]]>" 
def builder = new groovy.xml.StreamingMarkupBuilder() 
builder.encoding = "UTF-8" 
def person = { 
 mkp.xmlDeclaration() 
 mkp.pi("xml-stylesheet": "type='text/xsl' href='myfile.xslt'" ) 
 mkp.declareNamespace('':'http://myDefaultNamespace') 
 mkp.declareNamespace('location':'http://someOtherNamespace') 
 person(id:100){ 
  firstname("Jane") 
  lastname("Doe") 
  mkp.yieldUnescaped(comment) 
  location.address("123 Main") 
 } 
} 
def writer = new FileWriter("person.xml") 
writer << builder.bind(person) 
 
//output: 
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type='text/xsl' href='myfile.xslt'?> 
<person id='100' 
    xmlns='http://myDefaultNamespace' 
    xmlns:location='http://someOtherNamespace'> 
 <firstname>Jane</firstname> 
 <lastname>Doe</lastname> 
 <![CDATA[<!-- address is new to this release -->]]> 
 <location:address>123 Main</location:address> 
</person> 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:实战 Groovy 构建

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