Introducing the xml_to_xsl gem
require 'xml_to_xsl'
xml = "<doc>
<klass name='SimpleNumber'>
<def name='initialize' scope='private'></def>
<def name='add' scope='public'></def>
<def name='multiply' scope='public'></def>
<def name='divide' scope='private'></def>
<def name='square' scope='protected'></def>
</klass>
</doc>"
puts XMLToXSL.new(xml).to_xsl
output:
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> <xsl:template match='doc'> <xsl:element name='doc'> <xsl:apply-templates select='klass' /> </xsl:element> </xsl:template> <xsl:template match='klass'> <xsl:element name='klass'> <xsl:attribute name='name'> <xsl:value-of select='@name'/> </xsl:attribute> <xsl:apply-templates select='def' /> </xsl:element> </xsl:template> <xsl:template match='def'> <xsl:element name='def'> <xsl:attribute name='name'> <xsl:value-of select='@name'/> </xsl:attribute> <xsl:attribute name='scope'> <xsl:value-of select='@scope'/> </xsl:attribute> <xsl:value-of select='.' /> </xsl:element> </xsl:template> </xsl:stylesheet>
Resources
xmltoxsl gem xslt xml xml_to_xsl