Поиск и замена текста элемента XML / SVG на id с помощью Python lxml? - PullRequest
2 голосов
/ 31 июля 2011

Я новичок в XML и lxml и хотел бы использовать SVG в качестве графического шаблона и программно заменить некоторые элементы (метки на изображении).Для этого я создал SVG-файл с Inkscape, однако lxml, похоже, не в состоянии обрабатывать пространства имен svg:, используемые Inkscape.Сохранение как обычный SVG работает:

from lxml import etree
ifilename = "ifile.svg"
with open( ifilename, 'r') as infile: 
    tree = etree.parse( infile )
print tree.xpath("//text[@id='findme']/tspan/text()")

Но я не уверен, является ли xpath правильным методом для нахождения элемента в любой позиции в дереве элементов !?Буду признателен за толчок в правильном направлении.

1 Ответ

2 голосов
/ 31 июля 2011

Вы должны быть в состоянии использовать

print tree.xpath("//n:text[@id='findme']/n:tspan/text()",
                 namespaces={'n': "http://www.w3.org/2000/svg"})

Если это не работает, пожалуйста, покажите нам разметку SVG. Я не уверен, что вы подразумеваете под "сохранение как работает SVG".

...