groovy.transform.Field import groovy.json.JsonSlurper import org.ccil.cowan.tagsoup.Parser import groovy.xml.XmlSlurper 1000, "readTimeout": 60 * 1000, useCaches: false], "UTF-8") def tsParser = new Parser() def xmlSlurper = new XmlSlurper(tsParser) def htmlDom = xmlSlurper.parseText(rData) String findData = "window
<title>Groovy in Action</title> <author>Jane Doe</author> </book> </bookstore> """ // 使用XmlSlurper 解析XML def books = new XmlSlurper().parseText(xml) books.book.each { book -> println "书名: ${book.title
对于POJO,对象图通常由通过对象实例化和组合编写的程序构建;对于XML处理,对象图是解析XML文本的结果,通常使用XmlParser或XmlSlurper等类。 如果不想阅读该英文文档,可以等待我后续的相关介绍 当查询从XmlParser或XmlSlurper生成的对象图时,GPath表达式可以引用在元素上使用@符号定义的属性: a["@href"] :类映射表示法 下面,通过GPath导航配置进行相关内容的读取: def root = new XmlSlurper().parseText(xmlText.stripMargin()) println
@type //===> home XmlParser与XmlSlurper的异同 先来看看他们的相同之处。 GPath的语法却是那么一致 其实,处理XML我们比较关注的还是处理Xml的过程,也就是parser的返回结果,可喜的是groovy.util.Node(XmlParser)和GPathResult(XmlSlurper /records> ''' def parserRoot = new XmlParser().parseText(CAR_RECORDS) def slurperRoot = new XmlSlurper 前面也可以看到,它们最大的不同就是parse的返回类型不同,因此主要是groovy.util.Node(XmlParser)和GPathResult(XmlSlurper)的不同。 last-name'].text() ===> Smith //Namespaces in XmlSlurper //XmlSlurper缺省是忽略命名空间的 def p = """ <p:person
INSTANCE_${index++}"] = address } } } } } @NonCPS def printXml(String text) { return new XmlSlurper
it.port}" env["INSTANCE_${index++}"] = address } } } } } @NonCPS def printXml(String text) { return new XmlSlurper
replaceManifest(group: "gradleTask", description: "replace") { GPathResult androidManifest = new XmlSlurper