0

我想在 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>

我想要什么。

我认为必须有一种更简单的方法来做到这一点。

4

0 回答 0