2010-07-20 7 views
3

Je veux imprimer mon fichier XML qui provient d'un flux externe sur la console. Quand jeimpression groovy nodechild valeurs

log.debug "${xml}" 

Je reçois des valeurs xml sur la console, mais pas les balises de début et de fin. Par exemple

<fruits> 
    <fruit1>apple</fruit1> 
    <fruit2>orange</fruit2> 
</fruits> 

qu'afficher appleorange Juste les valeurs concaténées les unes après les autres. Quelle est la meilleure valeur pour le gérer. J'ai essayé ceci Best way to pretty print XML response in grails mais j'obtiens l'exception à parseText(). Je ne sais pas pourquoi, parce que je pense que le xml entrant est valide.

Mise à jour: Le type de variable xml est Groove NodeChild.

+0

Qu'est-ce que l'exception ? – Jon

+0

vérifier la classe de l'objet xml en premier (sortie log.debug (xml.class)) – Oleksandr

+0

Ceci est l'exception errors.GrailsExceptionResolver: groovy.lang.MissingMethodException: Aucune signature de la méthode: groovy.util.XmlParser.parseText() est applicable pour types d'arguments: xml est de type NodeChild parce que ce xml je reçois dans la demande de webservice externe – Paras

Répondre

5

Vous pouvez faire ce qui suit, si votre xml est simple, il doit répondre à vos besoins:

`

def xml = new XmlSlurper().parseText(xmlString) 
def result = new StreamingMarkupBuilder().bind{ 
      mkp.yield xml 
      } 
log.debug result as String 

`

+0

Il est à noter un simple xml. La question initiale est confuse. Je vais le mettre à jour. La variable xml est en fait un objet NodeChild – Paras

+0

Ma réponse fonctionnerait alors. XmlSlurper.parseText renvoie un objet NodeChild – stan229

+0

Oui, cela fonctionne. Merci – Paras

0

essayer cette

def writer = new StringWriter() 
xml.writeTo(writer) 
log.debug writer.toString() 
+0

Salut Olexandr, cela ne fonctionne pas aussi. Donne la même sortie – Paras