Greg Wogan-Browne
2005-01-25 06:46:34 UTC
Hi all,
I am having some trouble figuring out what is going on here - is this a
bug, or correct behaviour? Basically, when I create an XML document with
a namespace using xml.dom.minidom.parse() or parseString(), the
namespace exists as an xmlns attribute in the DOM (fair enough, as it's
in the original source document). However, if I use the DOM
implementation to create an identical document with a namespace, the
xmlns attribute is not present.
This mainly affects me when I go to print out the document again using
Document.toxml(), as the xmlns attribute is not printed for documents I
create dynamically, and therefore XSLT does not kick in (I'm using an
external processor).
Any thoughts on this would be appreciated. Should I file a bug on pyxml?
Greg
Python 2.3.3 (#1, May 7 2004, 10:31:40)
[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
I am having some trouble figuring out what is going on here - is this a
bug, or correct behaviour? Basically, when I create an XML document with
a namespace using xml.dom.minidom.parse() or parseString(), the
namespace exists as an xmlns attribute in the DOM (fair enough, as it's
in the original source document). However, if I use the DOM
implementation to create an identical document with a namespace, the
xmlns attribute is not present.
This mainly affects me when I go to print out the document again using
Document.toxml(), as the xmlns attribute is not printed for documents I
create dynamically, and therefore XSLT does not kick in (I'm using an
external processor).
Any thoughts on this would be appreciated. Should I file a bug on pyxml?
Greg
Python 2.3.3 (#1, May 7 2004, 10:31:40)
[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import xml.dom.minidom
raw = '<test xmlns="http://example.com/namespace"/>'
doc = xml.dom.minidom.parseString(raw)
print doc.documentElement.namespaceURI
http://example.com/namespaceraw = '<test xmlns="http://example.com/namespace"/>'
doc = xml.dom.minidom.parseString(raw)
print doc.documentElement.namespaceURI
print doc.documentElement.getAttribute('xmlns')
http://example.com/namespaceimpl = xml.dom.minidom.getDOMImplementation()
doc2 = impl.createDocument('http://example.com/namespace','test',None)
print doc2.documentElement.namespaceURI
http://example.com/namespacedoc2 = impl.createDocument('http://example.com/namespace','test',None)
print doc2.documentElement.namespaceURI
print doc2.documentElement.getAttribute('xmlns')