jjzjj

xml - 如何使用 XmlSlurper 删除 Groovy 中的元素?

例如,如何以编程方式删除rootNode中名称为one的所有标签?defrootNode=newXmlSlurper().parseText('Sometext!')我试过了rootNode.children().removeAll{it.name()=='one'}但它报告:groovy.lang.MissingMethodException:Nosignatureofmethod:groovy.util.slurpersupport.NodeChildren.removeAll()isapplicableforargumenttypes:(DUMMY$_closure1_closu

xml - 如何打印保留命名空间的 groovy 节点?

当我使用此代码输出一些XML时,我使用XmlParser解析(和修改)XmlParserparser=newXmlParser()defroot=parser.parseText(feedUrl.toURL().text)defwriter=newStringWriter()newXmlNodePrinter(newPrintWriter(writer)).print(root)printlnwriter.toString()根节点上的namespace声明没有打印出来,即使它们存在于root的toString()中......有什么想法吗? 最佳答案

xml - 从 xml 中获取节点

我不明白为什么这段代码无法从xml字符串中获取某个节点。下面的代码将抛出此错误:groovy.util.slurpersupport.NodeChildren.attributes()适用于参数类型:()值:[]感谢您解释如何解决这个问题!defxml=''''''groovy.util.slurpersupport.GPathResultProcess=newXmlSlurper().parseText(xml)Process.depthFirst().grep{it.name()=="activity"&&it.@name=="MergeLogData"}.each{activit

xml - 在 grails 中以 CSV 格式呈现

Grails提供了Converter类来快速将任何类型的Java/Groovy对象转换为XML/JSON响应。喜欢,renderobjasXML或renderobjasJSON我正在开发一个要求我以csv格式呈现对象的grails应用程序。有办法吗?我尝试了一些东西,并在下面做了解释:我的代码片段csv{defresults=[]for(dinData.list()){defr=[d.id,d.name]resultsrow.each{col->result+=col+','}result=result[0..-2]result+='\n'}printlnresultrender(co

java - 可以使用其中包含双引号的 Groovy MarkupBuilder 生成 XML 吗?

使用这段代码:xml=newgroovy.xml.MarkupBuilder()xmldata=xml.Plugins(nextid:'10'){Target(name:'default.auth'){Port(protocol:'https'){mkp.yield8080}}}生成此输出:8083但是,有没有办法用双引号生成这样的输出?8083 最佳答案 是的,这是documentation.MarkupBuilder.setDoubleQuotes(true)如果链接变坏(从上面的链接复制,适用于Groovy2.4.10)设置双

xml - Groovy 解析 JSON 与 XML

使用groovy,您是否期望读取和查询JSON与XML在速度和内存开销方面有更好的性能? 最佳答案 JSON比XML更小、更简单。我敢打赌JSON的解析速度更快。YAML会更快。 关于xml-Groovy解析JSON与XML,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/180039/

java - XMLParser 正在吃掉我的空格

我正在解析的wiki页面丢失了大量空白,我认为这是解析器的问题。我的Groovy脚本中有这个:@Grab(group='org.ccil.cowan.tagsoup',module='tagsoup',version='1.2')defslurper=newXmlSlurper(neworg.ccil.cowan.tagsoup.Parser())slurper.keepWhitespace=trueinputStream.withStream{doc=slurper.parse(it)println"originalContent="+doc.'**'.find{it.@id=='e

java - GPathResult ..存在或不存在节点

我的GPathResult可以有3种方式之一的名称节点1)名称节点存在并具有值例如:约翰2)名称节点存在,但其中没有值。3)根本不存在名称节点。在Groovy代码中,我如何使用我的Gpathresult区分上述3种情况。我是否使用类似gPathResult.值()!=空?伪代码:if(namenodeispresentandhasavalue){dothis}if(namenodeexists,buthasnovalueinit){dothis}if(Nonamenodeexistsatall){dothis} 最佳答案 您必须测试

xml - 使用 groovy.xml.MarkupBuilder 语法附加到现有的 groovy.util.Node?

我正在使用返回groovy.util.Node的API,允许我自定义其生成的XML。我需要将一个子元素附加到节点中,我想知道是否可以使用MarkupBuilder语法来修改节点。例如,这里有一些有用但看起来很笨拙的东西:withXml{rootNode->defappendedNode=newNode(rootNode,'foo',[name:'bar'])defappendedNodeChild=newNode(appendedNode,'child',[blah:'baz'])}有没有办法使用MarkupBuilder-ish语法附加到rootNode?谢谢。

xml - Groovy:如何在使用 XMLSlurper() 读取的 XML 元素列表的开头插入节点

我可能遗漏了一些明显的东西,因为我是Groovy的菜鸟,但我搜索过但没有找到我正在寻找的东西。我有一个测试课,我正在阅读一些XML;我想在一系列元素的开头插入一个元素。我已经想出了如何替换第一个元素,并且我已经想出了如何附加一个节点到列表的末尾,但我似乎做不到了解如何在列表的开头(或理想情况下,任意位置)插入元素。例如:@Testvoidfoo(){defxml=""""""defroot=newXmlSlurper().parseText(xml)root.listofthings.thing[0].replaceNode({thing(id:101,name:'bar')})roo