Buduję dokument SVG z ElementTree w Pythonie 2.7. Oto kod:Utwórz dokument SVG/XML bez przestrzeni nazw ns0 przy użyciu Python 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')
To generuje dane wyjściowe:
<?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>
nie analizować jako ważny SVG. Jak mogę usunąć przestrzeń nazw ns0?
Odpowiadając na swoje pytanie jest o wiele lepsza niż usuwanie go. Jeśli ktoś później to pytanie, to będzie już odebrane i zindeksowane! – codekaizen
Jeśli potrzebujesz kompatybilności ze starszymi Pythonami (lub nawet, jeśli nie), możesz lepiej skorzystać z ['lxml.etree'] (http://codespeak.net/lxml/tutorial.html): to jest coś więcej lub mniej nadzbiór tego, co dostarcza 'xml.etree'. Ma jednak pewne zewnętrzne zależności. – intuited
lxml jest znany z tego, że nie działa na OS X po wyjęciu z pudełka. Nie zapewniają one prekompilowanego jajka dla komputerów Mac z procesorem Intel, a próba skompilowania go od początku jest niezwykle trudna. Jedynym sposobem na szybkie uruchomienie go jest użycie Macportów, co nie jest akceptowalną zależnością. – jfenwick