草庐IT

XmlSlurper

全部标签

xml - Groovy - XmlSlurper - 将属性读入 map

创建包含属性作为键和相应值的映射的最佳方法是什么?谢谢。 最佳答案 给定:defxml=''你可以简单地做:defattrmap=newXmlSlurper().parseText(xml).attributes() 关于xml-Groovy-XmlSlurper-将属性读入map,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/23391776/

xml - 在 XmlSlurper 的 GPath 中使用变量

有没有办法让XmlSlurper通过变量获取任意元素?例如所以我可以做类似的事情输入文件:defxml=newXmlSlurper().parse(inputFile)Stringfoo="record"returnxml.{foo}.size()我试过使用{}和${}以及()我如何转义这样的变量?还是没有办法?是否也可以使用闭包的结果作为参数?所以我可以做类似的事情Stringfoo=file.recordintnumRecords=xml.{foo.find(/.\w+$/)} 最佳答案 importgroovy.xml.*de

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 - Groovys XmlSlurper 中的命名空间处理

情况:defstr="""sudomakemeasandwich!"""defxml=newXmlSlurper().parseText(str)printlnxml.bar这段代码的输出是#sudomakemeasandwich!解析器似乎合并了的内容和.是否需要这种行为?如果是,我如何避免这种情况并仅选择或? 最佳答案 默认情况下,XMLSlurper不支持命名空间。这可以通过使用declareNamespace声明命名空间来打开Method.defstr="""sudomakemeasandwich!"""defxml=new

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 - 为默认命名空间中的元素添加了 tag0 命名空间

我正在尝试使用Groovy的XmlSlurper解析和修改Maven的pom.xml。我的pom.xml声明了命名空间xsi。4.0.0a-group-idan-artifact-id我的Groovy源代码如下:importgroovy.xml.XmlUtildefpom=newXmlSlurper().parse('pom.xml').declareNamespace('':'http://maven.apache.org/POM/4.0.0',xsi:'http://www.w3.org/2001/XMLSchema-instance')//manipulatethepomprin

xml - SoapUI 在模拟服务脚本中获取请求参数

对于所有SoapUI常客来说,这可能是一个非常简单的过程。在SoapUI模拟服务响应脚本中,如何提取我正在回复的请求中的值?假设传入请求有1234如何将“1234”放入Groovy变量中?我尝试使用xmlHolder,但我的XPath似乎有误。(我已经知道如何设置属性并将其值集成到响应中。) 最佳答案 如果您想访问SOAP请求并进行一些XPath处理,由于GPath的强大功能,在soapUI中有一种更简单的方法可以做到这一点和XmlSlurper.以下是您访问客户编号的方式:defreq=newXmlSlurper().parseT

xml - 我如何使用 Groovy 的 XmlSlurper 检查元素是否存在?

我正在尝试确定XML元素是否存在于Groovy的XmlSlurper中。有没有办法做到这一点?例如:如何判断bar元素是否存在? 最佳答案 API有点古怪,但我认为有一些更好的方法来寻找child。当您要求“xml.bar”(存在)或不存在的“xml.quux”时,您得到的是groovy.util.slurpersupport.NodeChildren目的。基本上是满足您要求的标准的节点集合。查看特定节点是否存在的一种方法是检查NodeChildren的大小是否为预期大小:deftext=""defxml=newXmlSlurper

xml - Groovy XmlSlurper 与 XmlParser

我在这个主题上搜索了一段时间,也找到了一些结果,我在文章末尾提到了这些结果。谁能帮我准确回答下面列出的这三个问题?对于哪些用例,使用XmlSluper比XmlParser更有意义,反之亦然(从API/语法的易用性角度来看)?哪个内存效率更高?(看起来像Slurper)哪个处理xml的速度更快?案例一。当我必须读取xml中的几乎所有节点时?案例b。当我只需要读取几个节点时(比如使用gpath表达式)?案例c。什么时候必须更新/转换xml?前提是xml文件不是普通文件(具有xml的深度和大小级别)。资源:http://www.tutkiun.com/2009/10/xmlparser-an

html - 使用 groovy 提取部分 HTML

我需要从给定的HTML页面中提取一部分HTML。到目前为止,我使用带有tagsoup的XmlSlurper来解析HTML页面,然后尝试使用StreamingMarkupBuilder获取所需的部分:importgroovy.xml.StreamingMarkupBuilderdefhtml="atest"defdom=newXmlSlurper(neworg.ccil.cowan.tagsoup.Parser()).parseText(html)printlnnewStreamingMarkupBuilder().bindNode(dom.body)但是,我得到的结果是atest这看起