在 ElementTree 中添加前缀属性
Posted
技术标签:
【中文标题】在 ElementTree 中添加前缀属性【英文标题】:Add prefixed attribute in ElementTree 【发布时间】:2013-05-27 18:01:03 【问题描述】:我在 ElementTree 中处理 SVG 文件。给定文件test.svg
<?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,但看不出哪里出了问题。
【问题讨论】:
那么问题是什么? 【参考方案1】:您还必须在使用fromstring
解析的字符串中声明xlink
:
link = ET.fromstring('<a xmlns:xlink="http://www.w3.org/1999/xlink" '
'xlink:href="http://www.mysite.com/"></a>')
【讨论】:
以上是关于在 ElementTree 中添加前缀属性的主要内容,如果未能解决你的问题,请参考以下文章
AttributeError: 'ElementTree' 对象在尝试导入 excel 文件时没有属性 'getiterator'
python-23 xml.etree.ElementTree模块
Python不归路_xml.etree.ElementTree模块