Greg Wilson wrote: > My first attempt was this XML file: > > ---------------------------------------------------------------------- > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE lec [ > <!ENTITY ldots "舰"> > ]> > <lec title="Introduction"> > <topic title="Motivation" summary="motivation for course"> > <slide> > <b1>Write an introduction&ldots;</b1> > </slide> > </topic> > </lec> > > ---------------------------------------------------------------------- > > Running "python validate.py first.xml" produces: > > ---------------------------------------------------------------------- > > Traceback (most recent call last): > File "validate.py", line 7, in ? > ElementTree.parse(filename) > File "C:\Python23\Lib\site-packages\elementtree\ElementTree.py", > line 865, in parse > tree.parse(source, parser) > File "C:\Python23\Lib\site-packages\elementtree\ElementTree.py", > line 589, in parse > parser.feed(data) > File "C:\Python23\Lib\site-packages\elementtree\ElementTree.py", > line 1160, in feed > self._parser.Parse(data, 0) > File "C:\Python23\Lib\site-packages\elementtree\ElementTree.py", > line 1113, in _default > raise expat.error( > xml.parsers.expat.ExpatError: undefined entity &ldots;: line 9, column > 27 > > ----------------------------------------------------------------------
looks like a bug in the Python version of elementtree. you can either switch to cElementTree, or apply the following patch: Index: elementtree/ElementTree.py =================================================================== --- elementtree/ElementTree.py (revision 2315) +++ elementtree/ElementTree.py (working copy) @@ -1120,7 +1120,7 @@ self._target = target self._names = {} # name memo cache # callbacks - parser.DefaultHandler = self._default + parser.DefaultHandlerExpand = self._default parser.StartElementHandler = self._start parser.EndElementHandler = self._end parser.CharacterDataHandler = self._data (for quicker responses to elementtree questions, use the xml-sig mailing list) </F> -- http://mail.python.org/mailman/listinfo/python-list