[XML-SIG] xmllib setliteral misfeature?
Anders Qvist
quest@netg.se
Sun, 19 Sep 1999 08:24:28 +0200 (CEST)
(I am not on the mailing list, so please reply accordingly.))
Consider if you will, the following program:
#!/usr/bin/python
from xmllib import XMLParser
class Parser (XMLParser):
def __init__(self):
XMLParser.__init__(self)
self.feed("<jabber>123<tjipp>456</tjipp>789</jabber>")
def unknown_starttag (self, tag, attributes):
print "starttag " + tag
self.setliteral()
def unknown_endtag (self, tag):
print "endtag " + tag
def handle_data (self, data):
print "data " + data
test = Parser()
According to xmllib doc, setliteral() is supposed to do the following:
setliteral ()
Enter literal mode (CDATA mode). This mode is automatically
exited when the close tag matching the last unclosed open tag
is encountered.
If I feed the XMLParser this "<jabber>123<tjipp>456</tjipp>789</jabber>"
and call setliteral() in unknown_starttag(), I interpret the above doc as
meaning that I should get the following output:
starttag jabber
data 123
data <
data tjipp>456
data 654
data <
data /tjipp>
data 789
endtag jabber
Or something similar. I don't however. Rather I get the following:
starttag jabber
data 123
data <
data tjipp>456
data 654
endtag tjipp <= Why call to unknown_endtag here?
data 789
endtag jabber
As you can see, the internal tag generates a call to unknown_endtag. This
does not seem to be in accordance with the docs. Is this a bug or am I
missing something? I'm using the Debian package for python, version
1.5.2-3.
Anders "Quest" Qvist
NetGuide Scandinavia
And we who listen to the sky, or walk the dusty grade,
Or break the very atoms down, to see how they are made,
Or study cells, or living things, seek truth with open hand;
The profoundest act of worship is to try to understand.
-- Catherine Faber, "The Word of God"