0
lxml.etree.parse()を使用して以下のXMLファイルを解析しようとしています。このXMLには、3行目の特殊フォントの文字が含まれています。この文字は、Dingbats
のfont-value 0x 7
-電話の絵文字です。メモ帳++では、BEL
- 黒い四角内に白い文字が表示されます。私は質問にこのcaracterを投入することができませんでした。特殊フォントの文字を解析するときにlxmlがクラッシュする
File "lxml.etree.pyx", line 3193, in lxml.etree.parse (src/lxml/lxml.etree.c:64168)
File "parser.pxi", line 1548, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:91390)
File "parser.pxi", line 1577, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:91674)
File "parser.pxi", line 1477, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:90741)
File "parser.pxi", line 1024, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:87655)
File "parser.pxi", line 565, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:83243)
File "parser.pxi", line 656, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:84225)
File "parser.pxi", line 596, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:83549)
lxml.etree.XMLSyntaxError: invalid character in attribute value, line 3, column 14
どのように私はこのような文書を解析することができます
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<layer pass="0" class="FontMarker" locked="0">
<prop k="chr" v="!!!SPECIAL_CARACTER_HERE!!!"/>
</layer>
</qgis>
この文字は、lxmlの(だけでなく、XMLのクラッシュ)、次のエラーでクラッシュするのですか?
UPDATE: A link to the file itself.
それを取り除くために、あなたがその文字を必要とするか、それは大丈夫ですか? – pacholik
@pacholik私はそれを必要としますが、ファイルの大部分を何も解析しない方が良いです。そのような文字を除外して回避することはいくぶん満足です。 –
BELとして表示されます。7はBEL https://en.wikipedia.org/wiki/Bell_characterを表す制御文字です。フォントやXMLファイルへのリンクはありますか? –