2009-08-27 11 views
1

% à% de STAB, j'ai essayé:Groovy - Comment transférer des nœuds XML entre des documents?

 
def xp = new XmlParser(); 
def testsuite = xp.parseText("<testsuite/>"); 
def testsuite1 = new XmlParser().parse("testsuite.xml"); 
testsuite1.testcase.each { 
    testsuite.append(it); 
} 

Mais cela me donne une exception:

groovy.lang.MissingMethodException: Pas de signature de la méthode: groovy.util.Node.append () est applicable pour les types d'arguments: (valeurs groovy.util.Node): {testcase ..., ...}

en dépit de: http://groovy.codehaus.org/api/groovy/util/Node.html dit: boolean append(Node child)

Alors, comment puis-je copier/déplacer nœuds soit tween documents? (D'une certaine manière Groovy - ne pas utiliser W3D DOM/JDOM ...)

Merci, Ondra

+0

Note pour moi-même - la solution de kpiwko était en [appelant l'API différemment] (http://git.app.eng.bos.redhat.com/jbossqe-mobile.git/diff/sandbox/buildenv/build .gradle? id = 60feab865965f468957fcab31e453faa27fad731) –

Répondre

2

Les œuvres suivantes, je devinais à ce que le contenu de testsuite.xml pourrait ressembler. Il est probable que votre fichier est le problème.

def ts = "<testsuite/>" 
def ts1 = """ 
<testsuite> 
    <testcase> 
    <foo>bar</foo> 
    </testcase> 
    <testcase> 
    <foo>baz</foo> 
    </testcase> 
</testsuite> 
""".trim() 

def testsuite = new XmlParser().parseText(ts) 
def testsuite1 = new XmlParser().parseText(ts1) 

testsuite1.testcase.each { 
    testsuite.append(it); 
} 

assert "bar" == testsuite.testcase[0].foo.text() 
assert "baz" == testsuite.testcase[1].foo.text() 
+0

Cela fonctionne vraiment pour vous? Pas pour moi ... toujours la même erreur. –

+0

$ groovy -version Version Groove: JVM: 14.0-b16 $ groovy xmlText.gy Capture: groovy.lang.MissingMethodException: Aucune signature de méthode: groovy.util.Node.append() est applicable pour les types d'argument: (groovy.util.Node): {testcase [attributs = {}; value = [foo [attributs = {}; valeur = [bar]]]]} à xmlText $ _run_closure1.doCall (xmlText.gy:17) à xmlText.run (xmlText.gy:16) à xmlText.main (xmlText.gy) –

+0

Groovy 1.6.4 , Linux, Sun JDK 1.6 –

Questions connexes