| 

.NET C# Java Javascript Exception

XML-Node kopieren mit Groovy

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


XML-Node kopieren mit Groovy

MrRobse - 12.11.2009 23:36
Hallo,

ich bin noch relativ neu in Sachen Groovy und bräuchte Hilfe bei Folgendem. Sagen wir mal, ich habe ein XML, das folgendermaßen aussieht:

<element1>
  <element2>
    <parameter1>Wert 1</parameter1>
    <parameter2>Wert 2</parameter2>
    <parameter3>Wert 3</parameter3>
  </element2>
</element1>

Nun möchte ich auf relativ einfachem Wege das komplette <element2> kopieren und hinten anhängen, sodass das Ganze dann so aussieht:

<element1>
  <element2>
    <parameter1>Wert 1</parameter1>
    <parameter2>Wert 2</parameter2>
    <parameter3>Wert 3</parameter3>
  </element2>
  <element2>
    <parameter1>Wert 1</parameter1>
    <parameter2>Wert 2</parameter2>
    <parameter3>Wert 3</parameter3>
  </element2>
</element1>

Kann mir dabei jemand helfen?

Vielen Dank,
Robert


Re: XML-Node kopieren mit Groovy

mabu - 13.11.2009 13:25
Mit XSLT wäre es auch sehr einfach möglich, die Quelle einfach zu duplizieren:

Language: HTML
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> &nbsp; <xsl:template match="/*"> <xsl:copy > <xsl:for-each select="."> <xsl:copy-of select="./*" />. <xsl:copy-of select="./*" />. </xsl:for-each> </xsl:copy> &nbsp; </xsl:template> <!-- jetzt gehts so wie es soll ^^ --> </xsl:stylesheet>
Ob das jetzt einfacher ist, in Groovy einzubinden, weiss ich leider nicht,
aber sicher gibt es auch hier eine Möglichkeit, eine XML mit einem XSL zu transformieren
Grüße


Re: XML-Node kopieren mit Groovy

mabu - 13.11.2009 13:40
Also dann würde ich versuchen per XSL zu lösen. Hier nochmal der Code aus dem letzten Post,
nur etwas verbessert (hab ich in meinem letzten Post auch schon aktualisiert ^^ )
Das Skript sucht sich das Wurzelelement und von da ausgehen, werden alle weiteren
Kindelemente dupliziert ausgegeben (so wie dein Beispiel es vorgegeben hat)
Grüße
Language: HTML
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> &nbsp; <xsl:template match="/*"> <xsl:copy > <xsl:for-each select="."> <xsl:copy-of select="./*" />. <xsl:copy-of select="./*" />. </xsl:for-each> </xsl:copy> &nbsp; </xsl:template> &nbsp; </xsl:stylesheet>

//EDIT
Hier im GroovyCodehaus gibt es auch ein Beispiel, wie es gehen kann


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "XML-Node kopieren mit Groovy" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.