Advertisement
rg443

Checkpoint Firewall Rules to TSV

Jun 23rd, 2014
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 2.93 KB | None | 0 0
  1. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  2.     <xsl:output method="text"/>
  3.    
  4.  
  5. <xsl:variable name="network_objects" select="document('xml/network_objects.xml')/network_objects"/>
  6. <xsl:variable name="services" select="document('xml/services.xml')/services"/>
  7. <xsl:variable name="communities" select="document('xml/communities.xml')/communities"/>
  8.  
  9. <xsl:key name="x" match="fw_policies/fw_policie/rule/rule/src/members/reference/Name | fw_policies/fw_policie/rule/rule/dst/members/reference/Name" use="."/>
  10.  
  11. <xsl:template match="/fw_policies/fw_policie">
  12. <xsl:for-each select="rule/rule"><xsl:text>&#xa;</xsl:text>
  13. <xsl:if test="disabled='true'"><xsl:text># </xsl:text></xsl:if>
  14. <xsl:choose>
  15. <xsl:when test="Rule_Number">
  16. <xsl:value-of select="Rule_Number"/><xsl:text>&#x9;</xsl:text>
  17. <xsl:value-of select="action/action/Name"/><xsl:text>&#x9;</xsl:text>
  18. <xsl:if test="src/members/reference"><xsl:for-each select="src/members/reference"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each></xsl:if>
  19. <xsl:if test="src/compound/compound"><xsl:for-each select="src/compound/compound"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each></xsl:if><xsl:text>&#x9;</xsl:text>
  20. <xsl:for-each select="dst/members/reference"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each><xsl:text>&#x9;</xsl:text>
  21. <xsl:for-each select="services/members/reference"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each><xsl:text>&#x9;</xsl:text>
  22. <xsl:for-each select="through/members/reference"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each><xsl:text>&#x9;</xsl:text>
  23. <xsl:for-each select="install/members/reference"><xsl:value-of select="Name"/><xsl:if test="position() != last()">, </xsl:if></xsl:for-each><xsl:text>&#x9;</xsl:text>
  24. <xsl:value-of select="track/track/Name"/><xsl:text>&#x9;</xsl:text>
  25. <xsl:text>[</xsl:text><xsl:value-of select="name"/><xsl:text>]&#x9;</xsl:text> 
  26. <xsl:text># </xsl:text><xsl:value-of select="comments"/><xsl:text>&#x9;</xsl:text>
  27. </xsl:when>
  28. <xsl:when test="header_text"><xsl:text>&#xa;# </xsl:text><xsl:value-of select="header_text"/></xsl:when>
  29. <xsl:otherwise></xsl:otherwise>
  30. </xsl:choose>
  31.  
  32. </xsl:for-each>
  33.  
  34.  
  35.  
  36.  
  37.  
  38. <xsl:text>&#xa;&#xa;&#xa;Object List:&#xa;</xsl:text>
  39. <xsl:for-each select="rule/rule/src/members/reference/Name | rule/rule/dst/members/reference/Name">
  40. <xsl:sort case-order="upper-first" select="."/>
  41. <xsl:if test="generate-id(.) = generate-id(key('x', .)[1])">
  42. <xsl:value-of select="count(key('x', .))"/><xsl:text>&#x9;</xsl:text><xsl:value-of select="."/><xsl:text>&#xa;</xsl:text>
  43. </xsl:if>
  44. </xsl:for-each>
  45.  
  46.  
  47. <xsl:text>&#xa;&#xa;# Copyright (c) 2008-2011 R. G., Ing. - Advanceded Stylesheets for Checkpoint Web Visualization Tool (sk30765)</xsl:text>
  48.  
  49. </xsl:template>
  50.  
  51.  
  52. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement