2013-05-27 5 views
1

Я манипулирую SVG-файлами в ElementTree. Учитывая файл test.svgДобавить атрибут prefixed в ElementTree

<?xml version='1.0' encoding='utf-8'?> 
<svg 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink"> 
</svg> 

Я попытался создать элемент с конкретным префиксом

import xml.etree.ElementTree as ET 
ET.register_namespace("", "http://www.w3.org/2000/svg") 
tree = ET.parse('test.svg') 
tree.getroot().set("xmlns:xlink", "http://www.w3.org/1999/xlink") 
link = ET.fromstring('<a xlink:href="http://www.mysite.com/"></a>') 
tree.write('worldMap/test_out.svg', encoding = 'utf-8', xml_declaration = True) 

но впадать в ошибку unbound prefix. Я просмотрел this tutorial, но не могу понять, что случилось.

+0

Так Что вопрос? – enginefree

ответ

0

Вы должны объявить xlink также в строке, которые вы разбираете с fromstring:

link = ET.fromstring('<a xmlns:xlink="http://www.w3.org/1999/xlink" ' 
        'xlink:href="http://www.mysite.com/"></a>') 
+0

Отлично, спасибо! – u003f