pythonxml:以十六进制形式编码数字字符引用

2024-04-24 11:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有许多脚本可以获取外部数据并更新部分xml文件。你知道吗

我在python脚本中使用lxml,它以十进制表示法保存字符引用,例如:

$ cat input.xml
<data>
  <record text="&#x41f;&#x440;&#x438;&#x432;&#x435;&#x442;">
  </record>
</data> 

$ python
>>> from lxml import etree
>>> tree = etree.parse("input.xml")
>>> tree.write("out.xml")

$ cat out.xml
<data>
  <record text="&#1055;&#1088;&#1080;&#1074;&#1077;&#1090;">
  </record>
</data>

而其他脚本则使用十六进制形式:<record text="&#x41f;&#x440;&#x438;&#x432;&#x435;&#x442;">,因此即使没有实际的更改,这些文件在git中也会有一系列的更改。你知道吗

如何告诉lxml在python脚本中以十六进制形式(&#x41f;)保存字符引用?你知道吗


Tags: 文件text脚本inputdataxmlrecord字符