Possible error in 'dive into Python' book, help!

Sion Arrowsmith siona at chiark.greenend.org.uk
Mon Jul 31 12:19:10 EDT 2006


In article <mailman.8658.1154093256.27775.python-list at python.org>,
Ben Edwards (lists) <lists at videonetwork.org> wrote:
>I have been going through Dive into Python which up to now has been
>excellent.  I am now working through Chapter 9, XML Processing.  I am 9
>pages in (p182) in the 'Parsing XML section.  The following code is
>supposed to return the whole XML document (I have put ti at the end of
>this email):
>
>from xml.dom import minidom
> 
>xmldoc =
>minidom.parse('/home/ben/diveintopython-5.4/py/kgp/binary.xml') 
>grammerNode = xmldoc.firstChild
> 
>print grammerNode.toxml()
>
>But it only returns:
>
><!DOCTYPE grammar
>  PUBLIC '-//diveintopython.org//DTD Kant Generator Pro v1.0//EN'
>  'kgp.dtd'>
>
>The next line is then 
>
>grammerNode.childNodes
>
>And it returns an empty tuples;(
>
>Kind of stuck here as I don't really want to continue.  Has anyone any
>idea what is going on?

OK, your xmldoc has two child nodes. The first is the <!DOCTYPE ... >
you're getting above. Which of course doesn't have any children, so
grammarNode.childNodes is naturally empty. The <grammar> element is
the *second* child of the xmldoc, so of course isn't xmldoc.firstChild.
Probably what you want is:

grammarNode = xmldoc.documentElement

Dive Into Python's assertion that "A Document always has only one
child node, the root element of the XML document" looks a little
off from where I'm standing:

>>> print xmldoc.toxml()
<?xml version="1.0" ?>
<!DOCTYPE grammar
  PUBLIC '-//diveintopython.org//DTD Kant Generator Pro v1.0//EN' 'kgp.dtd'>
<grammar>
<ref id="bit">
  <p>0</p>
  <p>1</p>
</ref>
<ref id="byte">
  <p><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/><xref id="bit"/></p>
</ref>
</grammar>
>>> xmldoc.childNodes
[<xml.dom.minidom.DocumentType instance at 0x4053640c>, <DOM Element: grammar at 0x40536f0c>]
>>>

-- 
\S -- siona at chiark.greenend.org.uk -- http://www.chaos.org.uk/~sion/
  ___  |  "Frankly I have no feelings towards penguins one way or the other"
  \X/  |    -- Arthur C. Clarke
   her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump



More information about the Python-list mailing list