4
我目前正在從YAML文件中取出字符串並將它們轉換爲XML。我使用lxml.etree
來做到這一點,並且本質上是爲我的YAML文件中的每個值構建單個XML標記<msg>
,然後使用lxml.etree.tostring()
將其寫出。但是,給我的文件偶爾會有HTML標記,例如<a>
,HTML實體(例如
),以及字符喜歡&
。 LXML解析器當前正在將所有這些轉換爲HTML實體,以便<a>
變爲<a>
而
變爲&nbsp;
而&
僅變成&
。lxml.tostring錯誤地用HTML實體替換文本
在前兩種情況下,好像我會丟失這些數據,但我似乎無法弄清楚如何告訴LXML解析器不要爲我做任何HTML實體轉換。有沒有辦法做到這一點?
什麼是解析器類?您可以通過將'resolve_entities' arg設置爲'False'來禁用實體解析,如\t ETCompatXMLParser,\t XMLParser或XMLTreeBuilder。 – felipsmartins
我只是使用'lxml.etree.tostring()',它沒有'resolve_entities'選項的外觀。我本質上是採取樹和'pretty_print = True'輸出,所以我可以把它交給另一個模塊,這將保存新文件的地方。那些其他解析器是否允許使用像lxml一樣的好格式? – skeletalbassman
我想真正的問題是,當我想寫或打印xml樹作爲一個字符串,它總是給我的實體沒有選擇來改變這一點。 – skeletalbassman