3

xmlファイルがあります:

<body>
    <entry>
         I go to <hw>to</hw> to school.
    </entry>
</body>

何らかの理由で、lxmlパーサーで解析する前にとに変更<hw>しました。&lt;hw&gt;</hw>&lt;/hw&gt;

<body>
    <entry>
         I go to &lt;hw&gt;to&lt;/hw&gt; to school.
    </entry>
</body>

<hw>しかし、解析されたxmlデータを変更した後、ではなく要素を取得したいと思い&lt;hw&gt;ます。どうやってやるの?

4

2 に答える 2

4

最初にunescape関数を見つけます:

from xml.sax.saxutils import unescape

entry=body[0]

エスケープを解除して、元のファイルに置き換えます。

body.replace(entry, e.fromstring(unescape(e.tounicode(entry))))
于 2013-02-02T07:26:13.270 に答える
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)
于 2013-02-02T07:14:36.973 に答える