0

我的 input.xml

<z1:BookNames name="Groovy" dataType="INTEGER" xmlns:z0="messages" xmlns:z2="base" xmlns:z3="number" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:z1="bookcat">
    <z3:BookCost>
        <z3:IntegerValue>1106</z3:IntegerValue>
    </z3:BookCost>
</z1:BookNames>

我的代码-

document = parse(new FileReader('input.xml'))

rootElement = document.documentElement

println rootElement

use(groovy.xml.dom.DOMCategory)
{
    println rootElement.'@dataType'
    cf =  rootElement.'z3:BookCost'
}

我正在尝试获取图书成本,但到目前为止没有成功。你能在这里提出想法吗?我不能将前缀 z3 声明为 'z3:BookCost' z3 可以是输入 xml 中的任何内容。但是命名空间值可以在代码中硬编码。

4

1 回答 1

2

这是使用 XmlSlurper 的一种方法:

new File( 'input.xml' ).withReader { x ->
  new XmlSlurper().parse( x ).with { root ->
    println root.@dataType
    println root.BookCost.IntegerValue
  }
}

DOMCategory不支持命名空间(afaik)

于 2013-06-24T07:51:00.307 回答