我正在用C#编写一个程序,它基本上读取一个SVG文件,并对内容做一些有用的事情。我将要处理的最复杂的数据是路径。他们采取如下形式:用C#解析SVG“路径”元素 - 有没有库可以做到这一点?
<path d="M5.4,3.806h6.336v43.276h20.738v5.256H5.4V3.806z"/>
在这种情况下,M,H,V,H,V和Z表示一些命令。在某种程度上,它们就像函数一样,其后面的数字是参数。也有一些更复杂的:
<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"/>
在这种情况下, “C” 命令后面6个参数(-2.232,1.152,-6.913,2.304,-12.817,和2.304在第一种情况下) 。你可以看到这可能会变得棘手。我的问题是:SO社区是否意识到任何现有的库将这些数据读入一些有用的ADT?
在我编写所有东西并编写大量字符串解析函数之前,我真的不想重新发明轮子。此外,任何意见将不胜感激。我知道如何阅读XML文档,这在这里不是问题。
您是否只需要将每个路径转换为命令列表(其中每个命令都有自己的参数),还是需要构建这些命令的基本解释器? – 2011-02-25 09:18:56
两者都需要发生,我正在寻求两方面的见解。 – 2011-02-25 15:15:27