[XML-SIG] Multiple top nodes
richard@iopen.co.nz
richard@iopen.co.nz
Wed, 1 Nov 2000 09:39:14 +1300 (NZDT)
On 31 Oct 2000, Lars Marius Garshol wrote:
> * richard@iopen.co.nz
> |
> | [...] which worked great. I'm having exactly 0 luck getting the same
> | sort of thing to work with 0.6.1. The key in this case was using a
> | DocumentHandler that stuffed the DOM into a DocumentFragment, not a
> | Document (which must be well formed).
>
> Could you provide us with the exact error message you get?
>
> I have a suspicion that your problem might be related to your trying
> to parse a non-wellformed XML document. :-)
Thanks for the reply. A quick example -
With a file called some.xml with contents -
---
<sometag>
<someinnertag/>
<someinnertag/>
</sometag>
<sometag>
<someinnertag/>
<someinnertag/>
</sometag>
---
and using FromXmlFile to parse some.xml into a DOM -
---
Python 2.0 (#1, Oct 16 2000, 18:10:03)
[GCC 2.95.2 19991024 (release)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> from xml.dom.ext.reader.Sax2 import FromXmlFile
>>> xml_dom=FromXmlFile('out.xml')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File
"/usr/local/python-2.0/lib/python2.0/site-packages/_xmlplus/dom/ext/reader/Sax2.py",
line 276, in FromXmlFile
rv = FromXmlStream(fp, ownerDocument, validate, keepAllWs, catName,
saxHandlerClass)
File
"/usr/local/python-2.0/lib/python2.0/site-packages/_xmlplus/dom/ext/reader/Sax2.py",
line 256, in FromXmlStream
parser.parseFile(stream)
File
"/usr/local/python-2.0/lib/python2.0/site-packages/_xmlplus/sax/drivers/drv_pyexpat.py",
line 68, in parseFile
if self.parser.Parse(buf, 0) != 1:
xml.parsers.expat.error: junk after document element: line 6, column 0
>>>
---
Which I would have expected, if it was trying to parse into a Document. My
reading of -
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core.html#ID-B63ED1A3
suggests that if I was to parse into a DocumentFragment (which is what I
did with SaxBuilder in my original example), the document should be able
to have more than one top-level node.
A little more detail might help -- I'm looking to have a number of
different programs writing 'snippets' of XML into different files, which
then get read by a different program, parsed into DocumentFragment, and
then written back out to a file which will be Well Formed.
I could just read the files in blindly, manually put root tags around the
lot, and write them out again, but I may want to manipulate the DOM before
I write it out, and I'd like to check that the fragments are individually
well formed (well, as well formed as a document could be with multiple top
nodes).
Many thanks,
Richard Waid
Network/Software Engineer
iOpen Technologies Ltd.