¿Hay alguna manera de que XmlSlurper obtenga elementos arbitrarios a través de una variable? p. por lo que puedo hacer algo como archivo de entrada :Usando variables en XmlSlurper's GPath
<file>
<record name="some record" />
<record name="some other record" />
</file>
def xml = new XmlSlurper().parse(inputFile)
String foo = "record"
return xml.{foo}.size()
He intentado usar {} y {} $ y() ¿cómo escapar de las variables de ese tipo? ¿O no hay una manera? y ¿es posible usar los resultados de los cierres como los argumentos también? Así que podría hacer algo como
String foo = file.record
int numRecords = xml.{foo.find(/.\w+$/)}
Esto no funciona para los elementos no niños inmediatas de la raíz. Observe: def xmltxt = "" " """ definición XML = new XmlSlurper(). ParseText (xmltxt) Cadena foo = "something.record" return xml. "$ {Foo}". Size() ¿Alguna otra sugerencia? –
Keegan
No sé de ninguna buena manera, podría dividir la cadena: def aNode = xml foo.split ("\\."). Cada uno { aNode = aNode. "$ {It}" } return aNode.size() –
Sí, cortando los trabajos de String up, gracias :) – Keegan