我想在 SVG 文件中查找圆形数据。读取文件:
let SVG_URL = openFile()
我检查网址
guard let fileURL = SVG_URL else { return }
在做部分我阅读内容
let SVG_data = try String(contentsOf: fileURL, encoding: .utf8)
打印 SVG_data 会给出如下文本:
<polyline style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.797794" id="9988D988" points="126.55,50.950001 113.949963,43.750004 113.949963,43.749974 108.55,43.750004"/> <g id="4B4363F3"> <rect style="fill:#F6F8FF;stroke-linejoin:round;stroke-width:3.82" id="2B4363F3" x="228.070006" y="714.069998" width="2.16" height="2.16"/> <circle style="fill:#F6F8FF;stroke-linecap:butt;stroke-width:0.25" id="3B4363F3" cx="229.150231" cy="715.150223" r="1.018225"/> </g>
在 MS Word 中复制文本会在每行后显示换行符。
但
let SVG_text = SVG_data.components(separatedBy: "\n")
给出一个没有换行符的简单文本行。与 "<" 相同。
将 SVG_text 转换为
let SVG_array = Array(SVG_text)
给了我想要的数组,看起来像
i: 40 zeile: <g
i: 41 zeile: id="4B4363F3">
i: 42 zeile: <rect
i: 43 zeile: style="fill:#F6F8FF;stroke-linejoin:round;stroke-width:3.82"
i: 44 zeile: id="2B4363F3"
i: 45 zeile: x="228.070006"
i: 46 zeile: y="714.069998"
i: 47 zeile: width="2.16"
i: 48 zeile: height="2.16"/>
i: 49 zeile: <circle
i: 50 zeile: style="fill:#F6F8FF;stroke-linecap:butt;stroke-width:0.25"
i: 51 zeile: id="3B4363F3"
i: 52 zeile: cx="229.150231"
i: 53 zeile: cy="715.150223"
i: 54 zeile: r="1.018225"/>
i: 55 zeile: </g>
我想要什么。
我认为必须有一种更简单的方法来做到这一点。