Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create SVG / XML document without ns0 namespace using Python ElementTree [duplicate]

Tags:

python

xml

svg

I'm building an SVG document with ElementTree in Python 2.7. Here is the code:

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')

This generates the output:

<?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>

This does not parse as valid SVG. How can I remove the ns0 namespace?

like image 467
jfenwick Avatar asked Oct 09 '10 06:10

jfenwick


1 Answers

I just figured it out and I can't delete the question so here it is:

etree.register_namespace("","http://www.w3.org/2000/svg")

I think this only works as of Python 2.7 though.

like image 78
jfenwick Avatar answered Oct 30 '22 09:10

jfenwick