Groovy xmlparser 获取属性值

标签 groovy

我在从以下 XML 解析属性值时遇到问题:

s='''<?xml version="1.0" encoding="UTF-8"?>
<web-ext
  xmlns="http://websphere.ibm.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
  version="1.0">
  <reload-interval value="3"/>
  <context-root uri="foo/bar" />
  <enable-directory-browsing value="false"/>
  <enable-file-serving value="true"/>
  <enable-reloading value="true"/>
  <enable-serving-servlets-by-class-name value="false" />
</web-ext>
'''

def contextroot
def xml = new XmlParser(false,false).parseText(s)
xml.each {
 if (it.name() == "context-root")
 contextroot = it.attributes().uri
}

它给了我正确的值。但是有没有更直接的方法呢?有点像

xml.name("context-root").uri

不起作用。

最佳答案

如果你想直接访问这个属性,你可以用

xml.'context-root'[0].@uri

关于Groovy xmlparser 获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335927/

相关文章:

groovy - 安全字符串切片

rest - 在 groovy 中检查 HTTP 状态代码

gradle - 将 Groovy gradle 迁移到 Kotlin gradle(ext 缺失,或者闭包转换,不确定)

jenkins - 捕获 Jenkins 工作流程中的多个错误

java - BST 时间错误

mysql - 在 Groovy 中的一个 SQL 语句中插入多行

grails - 三元算子的奇怪行为

powershell - 如何在上游作业中获取下游作业的控制台输出?

groovy - 使用Elasticsearch Groovy动态脚本进行字符串比较

groovy - 任何查找单词组合的方法?