私はxmlを解析するためにPython lxmlライブラリを使用していますが、特定のテキストを解析するのは苦労しています。次のコードをチェックアウト:なぜPython lxmlは私のXMLをとらないのですか?
>>> print raw_text_xml[:20]
ďťż<?xml version="1.
それは、XMLの前で3つの変な文字があります。
>>> print type(raw_text_xml)
<type 'unicode'>
>>> from lxml import etree
>>> article_xml_root = etree.fromstring(raw_text_xml, parser)
Traceback (most recent call last):
File "<input>", line 1, in <module>
article_xml_root = etree.fromstring(raw_text_xml, parser)
File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68121)
File "parser.pxi", line 1786, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102470)
File "parser.pxi", line 1667, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:101229)
File "parser.pxi", line 1035, in lxml.etree._BaseParser._parseUnicodeDoc (src/lxml/lxml.etree.c:96139)
File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:91290)
File "parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:92476)
File "parser.pxi", line 622, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:91772)
XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
ので、最初の文字が検査によって真である、<
ではないと言います。
>>> article_xml_root = etree.fromstring(raw_text_xml[3:], parser)
Traceback (most recent call last):
File "<input>", line 1, in <module>
article_xml_root = etree.fromstring(raw_text_xml[3:], parser)
File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68121)
File "parser.pxi", line 1781, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102435)
ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.
そして、あなたがアップコードの私の最初の行にすべての方法を見れば、それはすべてのUnicodeあったが、今それが突然、それがエンコーディング宣言とUnicode文字列であることについて不平を言う:だから、私は次のことを試してみましたこれらをきれいにします一緒に。
誰もがスライスした後に突然全体的に異なるエラーを表示する理由を知っていますか?そして、最も重要なのは、誰かが私がこれをどのように解決できるかを知っていますか?
xml plsを追加してください。 –