如何在lxml中将<转换为<,Python?
这里有一个xml文件:
<body>
<entry>
I go to <hw>to</hw> to school.
</entry>
</body>
由于某种原因,我把 <hw>
改成了 <hw>
,把 </hw>
改成了 </hw>
,然后用lxml解析器来解析它。
<body>
<entry>
I go to <hw>to</hw> to school.
</entry>
</body>
但是在修改了解析后的xml数据后,我想要得到的是 <hw>
这个元素,而不是 <hw>
。我该怎么做呢?
2 个回答
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)
5
首先,找到一个 unescape
函数:
from xml.sax.saxutils import unescape
entry=body[0]
然后用原来的内容替换掉这个 unescape
:
body.replace(entry, e.fromstring(unescape(e.tounicode(entry))))