如何在使用XmlSlurper解析xml时读取带连字符的属性名称(例如model_name)

Nag*_*thi 7 xml groovy xmlslurper

我试图在Groovy中使用XmlSlurper解析XML时读取一个属性.当我尝试读取带连字符的属性时,model-number我得到一个例外.

<router name="b" id="x" manufacturer-id="e" model-number="a"/>
Run Code Online (Sandbox Code Playgroud)

eri*_*urk 10

def a = "<router name='b' id='x' manufacturer-id='e' model-number='a'/>"

def router = new XmlSlurper().parseText(a)

    println router.@'manufacturer-id'
    println router.@'name'
    println router.@'id'
    println router.@'model-number'
Run Code Online (Sandbox Code Playgroud)

我在控制台上尝试了这个,它正在工作.


Ove*_*ous 3

来自XMLSlurper 的 Groovy 文档

如果您的元素包含破折号等字符,则可以将元素名称括在双引号中。

例子:

def myXML = '<router name="b" id="x" manufacturer-id="e" model-number="a"/>'
def router = new XmlSlurper().parseText(myXML)
def attr =  router.@"model-number".text()
Run Code Online (Sandbox Code Playgroud)

为我测试并工作。