将Groovy的groovy.util.slurpersupport.GPathResult(XmlSlurper)内容编写为XML

以前的博客中 ,我描述了使用XmlNodePrinter与解析的XML存在XmlParser的一个不错的格式标准输出,为Java String,并且在一个新的文件。 由于XmlNodePrinter可与groovy.util.Node情况下,它工作得很好XmlParser ,但不那么有效的XmlSlurper因为的XmlSlurper涉及的实例groovy.util.slurpersupport.GPathResult而不是实例groovy.util.Node 。 这篇文章研究了如何使用groovy.xml.XmlUtil来呈现GPathResult对象, GPathResult对象是通过将XML提取到标准输出,Java字符串和新文件中而得到的。

这篇文章的第一个代码清单演示啜XML用XmlSlurper和写入咕噜咕噜GPathResult使用标准输出XmlUtil连载(GPathResult,OutputStream中)方法和System.out的手柄。

slurpAndPrintXml.groovy:将XML写入标准输出

#!/usr/bin/env groovy

// slurpAndPrintXml.groovy
//
// Use Groovy's XmlSlurper to "slurp" provided XML file and use XmlUtil to write
// XML content out to standard output.

if (args.length < 1)
{
   println "USAGE: groovy slurpAndPrint.xml <xmlFile>"
}

String xmlFileName = args[0]

xml = new XmlSlurper().parse(xmlFileName)

import groovy.xml.XmlUtil
XmlUtil xmlUtil = new XmlUtil()
xmlUtil.serialize(xml, System.out)

下一个代码清单演示了如何使用XmlUtilserialize(GPathResult)方法将GPathResult序列化为Java String

slurpAndSaveXml.groovy:将XML写入Java字符串

#!/usr/bin/env groovy

// slurpXmlToString.groovy
//
// Use Groovy's XmlSlurper to "slurp" provided XML file and use XmlUtil to
// write the XML content to a String.

if (args.length < 1)
{
   println "USAGE: groovy slurpAndPrint.xml <xmlFile>"
}

String xmlFileName = args[0]

xml = new XmlSlurper().parse(xmlFileName)

import groovy.xml.XmlUtil
XmlUtil xmlUtil = new XmlUtil()
String xmlString = xmlUtil.serialize(xml)
println "String:\n${xmlString}"

第三个代码清单演示了XmlUtilserialize(GPathResult,Writer)方法的使用,该方法通过FileWriter实例将表示已GPathResult XML的GPathResult写入文件。

slurpAndPrintXml.groovy:将XML写入文件

#!/usr/bin/env groovy

// slurpAndSaveXml.groovy
//
// Uses Groovy's XmlSlurper to "slurp" XML and then uses Groovy's XmlUtil
// to write slurped XML back out to a file with the provided name. The
// first argument this script expects is the path/name of the XML file to be
// slurped and the second argument expected by this script is the path/name of
// the file to which the XML should be saved/written.

if (args.length < 2)
{
   println "USAGE: groovy slurpAndSaveXml.groovy <xmlFile> <outputFile>"
}

String xmlFileName = args[0]
String outputFileName = args[1]
xml = new XmlSlurper().parse(xmlFileName)

import groovy.xml.XmlUtil
XmlUtil xmlUtil = new XmlUtil()
xmlUtil.serialize(xml, new FileWriter(new File(outputFileName)))

这篇文章中的示例演示了如何使用XmlUtil方法编写/序列化混入GPathResult对象的XML。 XmlUtil类还提供用于序列化XmlParser提供的groovy.util.Node实例的方法。 接受Node实例的三种方法与上述GPathResult实例的三种方法相似。 同样, XmlUtil其他方法XmlUtil提供了对XML的类似支持,这些XML表示为org.w3c.dom.Element ,Java Stringgroovy.lang.Writable的实例。

xmlUtilSerializeMethods

我以前的博客文章中介绍的XmlNodePrinter类可用于序列化XmlParser解析为Node XML。 该XmlUtil类也可以用来连载XmlParser的解析的XML表示为一个Node ,但提供了能够序列化的额外优势XmlSlurper的咕噜咕噜XML表示为GPathResult

翻译自: https://www.javacodegeeks.com/2015/02/writing-groovys-groovy-util-slurpersupport-gpathresult-xmlslurper-content-xml.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值