在groovy中,Xpath函数不适用于xml

在groovy中,Xpath函数不适用于xml,groovy,Groovy,我有以下XML: <orders> <order xmlns:amz="http://www.amazon.co"> <amz:comp>amz</amz:comp> </order> <order xmlns:ebay="http://www.ebay.co"> <ebay:comp>ebay</ebay:comp> </orde

我有以下XML:

<orders>
    <order xmlns:amz="http://www.amazon.co">
        <amz:comp>amz</amz:comp>
    </order>
    <order xmlns:ebay="http://www.ebay.co">
        <ebay:comp>ebay</ebay:comp>
    </order>
</orders>

阿姆兹
易趣网
我检查了xpath表达式,如//orders/order,但在groovy中它不起作用,我不知道哪里出了问题

以下是我正在使用的代码: 导入groovy.xml.*

def source = '''<orders>
    <order xmlns:amz="http://www.amazon.co">
        <amz:comp>amz</amz:comp>
    </order>
    <order xmlns:ebay="http://www.ebay.co">
        <ebay:comp>ebay</ebay:comp>
    </order>
</orders>'''

def root = new XmlSlurper().parseText(source).declareNamespace([
    amz: "http://www.amazon.co",
    ebay: "http://www.ebay.co"
])

println root.orders
println root.orders.order."amz:comp"
def source=''
阿姆兹
易趣网
'''
def root=new XmlSlurper().parseText(源).declareNamespace([
amz:“http://www.amazon.co",
易趣:http://www.ebay.co"
])
println root.orders
println root.orders.order.“amz:comp”

我没有得到上述代码的任何输出。

在您的示例中,
root
变量引用
元素,因此当您调用
root.orders
时,就像您在寻找

<orders>
    <orders>...</orders>
</orders>
要获得以下输出:

amzebay
amz
amzebay
amz