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