Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mgray88/d66d54b21ca06bc32442280322499fd4 to your computer and use it in GitHub Desktop.
Save mgray88/d66d54b21ca06bc32442280322499fd4 to your computer and use it in GitHub Desktop.
Convert Android Vector Drawable to SVG with XSLT
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<svg xmlns="http://www.w3.org/2000/svg">
<xsl:attribute name="width">
<xsl:value-of select="substring-before(vector/@width, 'dp')"/>
</xsl:attribute>
<xsl:attribute name="height">
<xsl:value-of select="substring-before(vector/@height, 'dp')"/>
</xsl:attribute>
<xsl:attribute name="viewBox">
<xsl:value-of select="concat('0 0 ', vector/@viewportWidth, ' ', vector/@viewportHeight)" />
</xsl:attribute>
<xsl:for-each select="vector/path">
<path>
<xsl:attribute name="fill">
<xsl:value-of select="@fillColor"/>
</xsl:attribute>
<xsl:attribute name="d">
<xsl:value-of select="@pathData"/>
</xsl:attribute>
</path>
</xsl:for-each>
</svg>
</xsl:template>
</xsl:stylesheet>
<!-- NOTE all prefixes android: were removed manually, if someone can improve xsl, you're welcome -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
width="55dp"
height="55dp"
viewportWidth="55.0"
viewportHeight="55.0">
<path
pathData="M40.5,20.5l-3,0l0,6l-19.3,0l5.3,-5.3l-2.1,-2.1l-9.2,9.2l8.9,8.9l2.1,-2.1l-5.5,-5.6l22.8,0z"
fillColor="#ffffff" />
</vector>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment