> On 12 May 2022, at 10:26, Gilles <codecompl...@free.fr> wrote:
> Had another issue with parse(): It doesn't like reading from a string, so 
> StringIO() is the way to go:
> 
> """
> Traceback (most recent call last):
>   File "C:\myscript.py", line 170, in <module>
>     tree = et.parse(content, parser)
>   File "src\lxml\etree.pyx", line 3521, in lxml.etree.parse
>   File "src\lxml\parser.pxi", line 1859, in lxml.etree._parseDocument
>   File "src\lxml\parser.pxi", line 1885, in lxml.etree._parseDocumentFromURL
>   File "src\lxml\parser.pxi", line 1789, in lxml.etree._parseDocFromFile
>   File "src\lxml\parser.pxi", line 1177, in 
> lxml.etree._BaseParser._parseDocFromFile
>   File "src\lxml\parser.pxi", line 615, in 
> lxml.etree._ParserContext._handleParseResultDoc
>   File "src\lxml\parser.pxi", line 725, in lxml.etree._handleParseResult
>   File "src\lxml\parser.pxi", line 652, in lxml.etree._raiseParseError
> OSError: Error reading file '<html>

Look at the last line above - you're giving parse() a string containing XML 
data which the parse() function is treating as a filename; trying to open a 
file with a name equivalent to your XML content!

If you want to parse an XML string - use et.fromstring() instead.

The StringIO call may be reasonable if your XML didn't exist on disk; but if 
your source data is on disk best to either give parse() the filename (but then 
you get your #13 issue) or pass it a file handle provided by open().

Kind regards

aid

_______________________________________________
lxml - The Python XML Toolkit mailing list -- lxml@python.org
To unsubscribe send an email to lxml-le...@python.org
https://mail.python.org/mailman3/lists/lxml.python.org/
Member address: arch...@mail-archive.com

Reply via email to