1

次の XML に無効な文字が含まれています

  <capability_camctrl_privilege>
  <descr>Indicate whether to support &#8220;Manage Privilege&#8221; 
  <dependent>True</dependent>

次の方法でXMLを読み取ります root = etree.fromstring("%s" % in_xml, parser=etree.XMLParser(recover=True))

そして、読み込んだXMLをDictionary構造に保存し、

最後に、いくつかの変更を加えて、新しい XML を出力しようとしました。

ノード = etree.Element(STRING_WITH_SPECIAL_CHRACRTER)

エラーメッセージが表示されましたAll strings must be XML compatible: Unicode or ASCII, no NULL bytes

無効な文字列をインポートしてエスケープしようとしました

from xml.sax.saxutils import escape
from xml.sax.saxutils import quoteattr

しかし、それは機能しません。誰かが問題を解決するのを手伝ってくれますか? どうもありがとうございます!

Python バージョン 2.7

4

1 に答える 1

3

これは、 でよくあるエラー メッセージlxmlです。解決策は、文字列を で使用する前に Unicode に変換することlxmlです。これを行うには、エンコーディングを知る必要がありますが、たまたま知らない場合でも、 UTF-8の推測が正しいことがよくあります。

in_xml_unicode = unicode(in_xml, 'utf-8')
root = etree.fromstring(in_xml_unicode, parser=etree.XMLParser(recover=True))
于 2013-02-17T23:22:03.003 に答える