Never too late!
May be you can consider to use the <view> tag instead of the <symbol> tag in your svg (an automatic transformation using a script is more or less possible).
For instance, if one supposes your svg with <symbol> tags contains two icons (a "triangle" and a "square"), the code in icons-sprite.svg is something like:
<svg class="hidden" xmlns="http://www.w3.org/2000/svg">
<symbol id="triangle" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<path d="M8 24H24L16 8z"/>
</symbol>
<symbol id="square" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<path d="M8 8H24V24H8z"/>
</symbol>
</svg>
You can replace the content of icons-sprite.svg by a svg with <view> tags such as:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 64">
<view id="triangle" viewBox="0 0 32 32"/>
<g><path d="M8 24H24L16 8z"/></g>
<view id="square" viewBox="0 32 32 32"/>
<g transform="translate(0,32)"><path d="M8 8H24V24H8z"/></g>
</svg>
The corresponding css could be:
span {
display: inline-block;
height: 32px;
width: 32px;
background-repeat: no-repeat;
background-size: 32px 32px;
}
span.triangle {
background-image: url("icons-sprite.svg#triangle");
}
span.square {
background-image: url("icons-sprite.svg#square");
}
And the html is in this case:
<span class="triangle"></span>
<span class="square"></span>