我正在用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