有一个xml文件:
<body>
<entry>
I go to <hw>to</hw> to school.
</entry>
</body>
出于某种原因,在使用lxml解析器解析之前,我将<hw>
更改为<hw>
并将</hw>
更改为</hw>
。
<body>
<entry>
I go to <hw>to</hw> to school.
</entry>
</body>
但是在修改解析的xml数据之后,我希望获得<hw>
元素,而不是<hw>
。我怎么能这样做?
答案 0 :(得分:3)
首先找到unescape
函数:
from xml.sax.saxutils import unescape
entry=body[0]
unescape并将其替换为原始版本:
body.replace(entry, e.fromstring(unescape(e.tounicode(entry))))
答案 1 :(得分:1)
如果你知道哪个元素包含错误的转义元素:
# parse whole document as usual..
# find the entry element..
# parse the fragment
fragment = lxml.fromstring(entry.text)
# (optionally) add the fragment to the tree
entry.text = None
entry.append(fragment)