如何在Groovy中处理动态xpath?

如何在Groovy中处理动态xpath?,xpath,groovy,Xpath,Groovy,在下面的示例中,代码中给出了xpath String xml = Recall.getXml() def telephoneNumbers = new XmlSlurper().parseText(xml)​​​​​​​​ def outputBuilder = new groovy.xml.StreamingMarkupBuilder() String telephoneXml = outputBuilder.bind { mkp.yield telephoneNumbers.telephon

在下面的示例中,代码中给出了xpath

String xml = Recall.getXml()
def telephoneNumbers = new XmlSlurper().parseText(xml)​​​​​​​​
def outputBuilder = new groovy.xml.StreamingMarkupBuilder()
String telephoneXml = outputBuilder.bind { mkp.yield telephoneNumbers.telephone }
想知道通过变量指定相同xpath的任何可能解决方案。如下图所示

String telephoneXml = outputBuilder.bind { mkp.yield ${xpath} }

提前感谢。

要清楚这不是
xpath
。在groovy中,它被命名为,并且是一个groovy表达式

您可以使用类从字符串计算groovy表达式:

def xml = '''<root>
  <telephone>1234567899</telephone>
  <cell>1234567890</cell>
</root>'''
def telephoneNumbers=new XmlSlurper().parseText(xml)
def outputBuilder = new groovy.xml.StreamingMarkupBuilder()
def gpath = "xml.telephone"
String telephoneXml = outputBuilder.bind { mkp.yield Eval.me('xml',telephoneNumbers,gpath) }
defxml=''
1234567899
1234567890
'''
def telephoneNumbers=new XmlSlurper().parseText(xml)
def outputBuilder=new groovy.xml.StreamingMarkupBuilder()
def gpath=“xml.telephone”
字符串telephoneXml=outputBuilder.bind{mkp.yield Eval.me('xml',telephoneNumbers,gpath)}