NoPaste

1899.xsl

von bilzebub

SNIPPET_TEXT:
  1. <xsl:stylesheet version="1.0"
  2. xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" >
  3.  
  4. <xsl:output method="text"/>
  5.  
  6. <xsl:template match="/">
  7.   <xsl:for-each select="//position">
  8.     <xsl:call-template name="position"/>
  9.   </xsl:for-each>
  10.   <xsl:for-each select="//edge">
  11.     <xsl:call-template name="edge" />
  12.   </xsl:for-each>
  13.   <xsl:for-each select="//object">
  14.     <xsl:call-template name="object"/>
  15.   </xsl:for-each>
  16.   <xsl:apply-templates/>
  17. </xsl:template>
  18.  
  19. <xsl:template name="position">
  20. <xsl:text>\Cnode{</xsl:text><xsl:value-of select="./@x"/><xsl:text>,</xsl:text><xsl:value-of select="./@y"/><xsl:text>}{%</xsl:text><xsl:value-of select="../@id"/><xsl:text>%}
  21. </xsl:text>
  22. </xsl:template>
  23.  
  24. <xsl:template name="edge">
  25. <xsl:text>\ncline{%</xsl:text><xsl:value-of select="./@from"/><xsl:text>%}{%</xsl:text><xsl:value-of select="./@to"/><xsl:text>%}
  26. </xsl:text>
  27. </xsl:template>
  28.  
  29. <xsl:template name="object">
  30. <xsl:text>\uput[-90] {</xsl:text><xsl:value-of select="./@contextPosition"/><xsl:text>}{</xsl:text><xsl:value-of select="."/><xsl:text>}
  31. \uput[90] {</xsl:text><xsl:value-of select="./@contextPosition"/><xsl:text>}{3}
  32. </xsl:text>
  33. </xsl:template>
  34.  
  35. <xsl:template match="attribute">
  36. <xsl:text>\uput[90] {</xsl:text><xsl:value-of select="./@contextPosition"/><xsl:text>}{</xsl:text><xsl:value-of select="."/><xsl:text>}
  37. </xsl:text>
  38. </xsl:template>
  39.  
  40. <xsl:template match="*|@*|node()">
  41.   <xsl:apply-templates/>
  42. </xsl:template>
  43.  
  44. </xsl:stylesheet>

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN