草庐IT

Groovy沙箱

全部标签

xml - Groovy编辑XML文件,保留注释、换行

我想编辑现有的XML文件,同时保留其原始布局。这包括换行、注释等。编辑包括在XML中查找元素和修改文本值。我的第一次尝试是将XMLParser与XmlUtil.serialize一起使用,但这不符合要求。任何人都知道XMLParser的任何替代方案,其中编辑是“就地”原始XML字符串?如果没有,也许有一个库可以使用XPath/GPath执行搜索并只返回找到的位置,这样我就可以执行StringBuilder.replace。编辑:现在我做了这个函数,找到XML节点的字符串索引(我可以使用xpath找到)然后我在索引上进行替换。适用于简单节点值:deffind_location_by_no

xml - 在 Groovy 中将 XML 转换为 JSON

我希望使用groovy将xml转换为JSON。我知道转换的细节取决于我的喜好,但是有人可以推荐我应该使用哪些库和方法,并向我提供一些关于为什么/如何使用它们的信息吗?我正在使用groovy,因为有人告诉我它是一个非常有效的解析器,所以我正在寻找可以利用它的库谢谢! 最佳答案 您可以使用基本的Groovy完成这一切://GivenanXMLstringdefxml='''|Tim|Tom|'''.stripMargin()//Parseitdefparsed=newXmlParser().parseText(xml)//Convert

xml - 向 groovy MarkupBuilder 或 StreamingMarkupBuilder 添加动态元素和属性

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我见过很多使用Groovy的MarkupBuilder构建XML文档的示例,但它们似乎都对文档中的每个元素使用静态属性(属性名称在编译时都是已知的).如果我试图构建一个属性名称直到运行时才知道的XML文档怎么办?我还没有想出解决这样的问题所需的语法。

xml - Groovy XmlSlurper 访问根节点中的属性值

我正在尝试使用Groovy和XmlSlurper来完成对属于根节点的属性的访问。我可以使用嵌套节点轻松完成此操作,但似乎无法访问根节点。这是XML结构(简化):我希望能够获得lines-covered和lines-valid属性值。这是我正在尝试的代码:defcobertura=newXmlSlurper().parse(xml)defcoverage=cobertura.coveragedeflines=cobertura.find{it.@lines-covered}printlnlines我也试过:defcobertura=newXmlSlurper().parse("cober

xml - Groovy XmlSlurper : Find elements in XML structure

假设有以下XML结构:Field#11Field#22Field#33使用Groovy的XmlSlurper我需要执行以下操作:从Data开始找到包含值Field#1的元素在元素。如果找到则获取对应的值属于同一级别。 最佳答案 如果DataFieldName在文件中是唯一的:printlnnewXmlSlurper().parseText(xml).DataFieldText.find{it.DataFieldName=="Field#1"}.DataFieldValue.text()如果不是,并且您想获得一个包含所有匹配的Data

xml - 如何使用 Groovy 在 xml 中插入/移动/删除节点?

例如,我有以下xml文档:defCAR_RECORDS=''''''我想将汽车“Royale”移到第一辆,并在汽车“HSVMaloo”之后插入一辆新汽车,结果将是:''''''如何使用Groovy做到这一点?欢迎评论。 最佳答案 我采用了与danb类似的方法,但在实际打印生成的XML时遇到了问题。然后我意识到,通过向根询问所有它的“汽车”child而返回的NodeList与您通过询问根的child得到的列表不同。即使在这种情况下它们恰好是相同的列表,但如果根目录下有非“汽车”子级,它们就不会总是这样。因此,重新排序查询返回的汽车列表

xml - 使用 groovy 更新 xml 文件时保留格式

我有大量包含URL的XML文件。我正在编写一个groovy实用程序来查找每个URL并将其替换为更新版本。给定example.xml:/some/old/url/some/old/url/a/different/old/url?with=specialChars&escaped=true脚本运行后,example.xml应包含:/a/new/and/improved/url/a/new/and/improved/url/a/different/new/and/improved/url?with=specialChars&stillEscaped=true使用groovy出

xml - 如何使用 Groovy MarkupBuilder 插入 xml 注释?

我想使用GroovyMarkupBuilder将注释插入到我的xml文档中。怎么可能? 最佳答案 你可以像这样使用mkp.comment:defwriter=newStringWriter()defbuilder=newgroovy.xml.MarkupBuilder(writer)builder.cars{mkp.comment"Acomment"ford(type:'escort')ford(type:'fiesta')}printlnwriter打印:mkp.XXX方法是describedhere

xml - 如何在 Groovy 中通过标签名称查找所有 XML 元素?

我如何通过Groovy(GPath)中的标签名称找到XML中的所有元素?我需要在这个文档中找到所有的car元素:378932audi这是我尝试过但失败了的:defxml=newXmlSlurper().parse(file)assertxml.car.size()==2 最佳答案 它是这样工作的:defxml=newXmlSlurper().parse(file)defcars=xml.depthFirst().findAll{it.name()=='car'}assertcars.size()==2

xml - 在 Groovy 中加载、修改和编写 XML 文档

我有一个XML文档,我想从文件中加载它,修改一些特定元素,然后写回磁盘。我找不到任何有关如何在Groovy中执行此操作的示例。 最佳答案 您可以只修改节点的value属性来修改元素的值。/*input:testtest*/defxmlFile="/tmp/test.xml"defxml=newXmlParser().parse(xmlFile)xml.foo[0].each{it.@id="test2"it.value="test2"}newXmlNodePrinter(newPrintWriter(newFileWriter(xm