我正在使用Python 2.7中的ElementTree构建一个SVG文档。这是代码:
from xml.etree import ElementTree as etree
root = etree.XML('<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"></svg>')
root.append(etree.Element("path"))
root[0].set("d", "M1 1 L2 2 Z")
print etree.tostring(root, encoding='iso-8859-1')
这会生成输出:
<?xml version='1.0' encoding='iso-8859-1'?>
<ns0:svg xmlns:ns0="http://www.w3.org/2000/svg" height="100%" version="1.1" width="100%"><path d="M1 1 L2 2 Z" /></ns0:svg>
这不会解析为有效的SVG。 如何删除ns0名称空间?
答案 0 :(得分:47)
我刚想出来,我不能删除这个问题,所以这里是:
etree.register_namespace("","http://www.w3.org/2000/svg")
我认为这只适用于Python 2.7。
答案 1 :(得分:0)
以下是我使用lxml的方法。
from lxml import etree
svg_tree = etree.fromstring(svg_str, parser=etree.XMLParser())
etree.tostring(svg_tree)
此处使用的示例代码: lxml-removing-xml-tags-when-parsing