Estoy escribiendo un programa en C# que esencialmente lee un archivo SVG, y hace algunas cosas útiles con los contenidos. Los datos más complejos con los que trabajaré son caminos. Se toman formas tales como este:Analizando los elementos de "ruta" de SVG con C# - ¿hay bibliotecas para hacer esto?
<path d="M5.4,3.806h6.336v43.276h20.738v5.256H5.4V3.806z"/>
En este caso, el M, h, v, H, V, y z indican algunos comandos. En cierto modo, son como funciones, y los números que las siguen son argumentos. Hay también algunos otros más complejos:
<path d="M70.491,50.826c-2.232,1.152-6.913,2.304-12.817,2.304c-13.682,0-23.906-8.641-23.906-24.626
c0-15.266,10.297-25.49,25.346-25.49c5.977,0,9.865,1.296,11.521,2.16l-1.584,5.112C66.747,9.134,63.363,8.27,59.33,8.27
c-11.377,0-18.938,7.272-18.938,20.018c0,11.953,6.841,19.514,18.578,19.514c3.888,0,7.777-0.792,10.297-2.016L70.491,50.826z"/>
En este caso, el comando "c" es seguido por 6 argumentos (-2.232, 1.152, -6.913, 2.304, -12.817, y 2,304 en el primer caso) . Puedes ver cómo esto puede ser complicado. Mi pregunta es esta: ¿la comunidad SO está al tanto de las bibliotecas existentes que leen estos datos en algunos ADT útiles?
Antes de dejar de codificar todo y escribir un montón de funciones de análisis de cadenas, me gustaría no reinventar la rueda. Además, cualquier consejo sería apreciado. Soy consciente de cómo leer un documento XML, ese no es el problema aquí.
¿solo necesita transformar cada ruta en una Lista de comandos (donde cada comando tiene sus propios parámetros) o necesita construir un intérprete básico de esos comandos? –
Ambos tendrán que suceder, y estoy buscando información sobre ambos. –