如何转换< 进入lxml中的<,Python?

use*_*952 4 python lxml

有一个xml文件:

<body>
    <entry>
         I go to <hw>to</hw> to school.
    </entry>
</body>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我在使用 lxml 解析器解析它之前将其更改<hw>&lt;hw&gt;</hw>to 。&lt;/hw&gt;

<body>
    <entry>
         I go to &lt;hw&gt;to&lt;/hw&gt; to school.
    </entry>
</body>
Run Code Online (Sandbox Code Playgroud)

但是修改解析的xml数据后,我想获取一个<hw>元素,而不是&lt;hw&gt;. 我怎样才能做到这一点?

Kab*_*bie 5

首先找到一个unescape函数:

from xml.sax.saxutils import unescape

entry=body[0]
Run Code Online (Sandbox Code Playgroud)

取消转义并将其替换为原来的:

body.replace(entry, e.fromstring(unescape(e.tounicode(entry))))
Run Code Online (Sandbox Code Playgroud)