21
我在Python 2.7中使用ElementTree構建SVG文檔。下面是代碼:使用Python創建不帶ns0命名空間的SVG/XML文檔ElementTree
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命名空間?
回答自己的問題是不是刪除它好得多。如果有人以後有這個問題,它已經被回答和索引! – codekaizen 2010-10-09 06:47:25
如果您需要與較老的Pythons兼容(或者即使您不需要),您最好使用['lxml.etree'](http://classespeak.net/lxml/tutorial.html):這更多或者更少的是'xml.etree'提供的超集。雖然有一些外部依賴性。 – intuited 2010-10-09 06:51:42
lxml因無法在OS X開箱即用而臭名昭着。他們沒有爲英特爾的Mac提供預編譯的egg,並試圖從頭編譯它非常困難。讓它快速工作的唯一方法是如果你使用的macport,我不覺得它是可接受的依賴。 – jfenwick 2010-10-09 17:13:28