【发布时间】:2013-07-05 01:19:19
【问题描述】:
出于兼容性原因,我将美国的 SVG 交互式地图转换为 Javascript 支持的地图。为此,我需要将给定的 SVG 路径转换为 JSON 文件。
一个示例路径列表是
<path
d="M 404.13498,227.558 L 407.75898,227.324 L 407.95298,228.019 L 408.99798,
231.791 L 409.07498,232.061 L 405.21798,232.503 L 404.57198,232.58 L 404.13498,
227.558"
id="01111"
inkscape:label="Randolph, AL"
</path>
我想做的是把它转换成格式
['01111', 'Randolph, AL',
'M727,410L734,409L734,410L736,417L736,418L729,419L728,419L727,410']
我知道示例结果已关闭;这是由于示例地图经历了线性扩展。我感兴趣的是转换
M 404.13498,227.558 L 407.75898
进入
M404, 227L407 ... ect
在文本操作方面,正则表达式是我的一大弱点,如果能提供任何帮助,我将不胜感激。
【问题讨论】:
-
您从哪里获得结果中的值?结果似乎来自不同的源路径...您能否还指定逻辑-哪个数字来自哪个部分?
-
正则表达式用于匹配某些内容。我不会为此使用正则表达式。而是编写一个程序,该程序使用 XML 库读取文件,然后将其写入另一个文件。毕竟在 XML 中可能有 cmets 等等。
-
@Jerry,给出的示例来自jebruner.com/2011/11/… 我不确定他是如何进行数据转换的,但他确实指出新值是原始地图线性扩展的结果.
-
@JennyO'Reilly,这是来自 wikimedia Commons 上的美国县级地图的 SVG 标记。标记中没有 cmets。
-
你也许可以使用this regex,但是啊,我不认为我知道足够的javascript在提取它们后将它们全部整理出来:(