Индексирование xml / svg файла с помощью Beautiful Soup - PullRequest
0 голосов
/ 03 июня 2018

У меня есть файл SVG, в котором есть заголовки с уникальными идентификаторами, выглядящие так:

<title id="t0">
<title id="t1">

Существует много тысяч таких заголовков.

Вот как я могу создать объект BS изsvg:

svg = open('counties.svg', 'r').read()
soup = BeautifulSoup(svg, 'xml')
paths = soup.findAll('path')

Таким образом, я могу выбрать стиль каждого пути, но не могу получить название таким же образом:

for p in paths:
   p['style'] = "font-size:12px..." #this works
   p['title'] = "title for path..." #this doesnt work

Я подозреваю, что это потому, чтораздел 'title' имеет уникальный идентификатор.

Вот пример того, как выглядит "путь"

  <path d="M 405.190,251.879 L 405.748,257.292 L 401.350,257.81 L 401.012,254.629 L 400.885,253.474 L 401.300,253.43 L 401.430,253.322 L 401.300,252.294 L 405.190,251.879" id="01031" style="font-size:12px;fill-rule:nonzero;stroke:#FFFFFF;stroke-opacity:1;
    stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-linecap:butt;
    marker-start:none;stroke-linejoin:bevel;fill:#bcbddc">
   <title id="t31">
    Coffee, AL
   </title>
  </path>

Как правильно индексировать заголовок, чтобы я мог изменить его содержимое?

1 Ответ

0 голосов
/ 03 июня 2018

Попробуйте:

for p in paths:
   p['style'] = "font-size:102px" #this works
   p.title.string = "title for path..." 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...