0

私は次のXMLファイルを持っています:

<class id="1" name="good/bad">
    <verb>
        <token>like</token>
        <token>feel</token>
    </verb>
    <mess>This is <sugg>not</sugg> text</mess>
    <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id>
    <id type="correct">I'm glad to see you.</id>
</class>

特定のタグからテキストを抽出する必要があります。http://effbot.orgには非常に少数の例があり、一般的に不十分なドキュメントです多分どこかに良い例がありますか?また、同じタグ(トークン)内のテキストを個別のエンティティとしてどのように処理しますか?前もって感謝します!結果はおおよそ次のようになります。

(like) feel > not #This is not text
4

1 に答える 1

0

<mess>要素の内容で何をしたいのか明確ではありません。要素
の子については、これを試してください:<verb>

import xml.etree.ElementTree as ET
the_tree = ET.fromstring('''<class id="1" name="good/bad">
    <verb>
        <token>like</token>
        <token>feel</token>
    </verb>
    <mess>This is <sugg>not</sugg> text</mess>
    <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id>
    <id type="correct">I'm glad to see you.</id>
</class>''')
elems = the_tree.find('./verb').getchildren()
verbs = [verb.text for verb in elems]
# -> ['like', 'feel']

ファイルが大きい場合は、次の代替方法で要素にアクセスすることをお勧めします。

tree, id_map = ET.XMLID('''<class id="1" name="good/bad">
    <verb>
        <token>like</token>
        <token>feel</token>
    </verb>
    <mess>This is <sugg>not</sugg> text</mess>
    <id type="incorrect">I'm glad to <marker>unsee you</marker>.</id>
    <id type="correct">I'm glad to see you.</id>
</class>''')
elems = id_map['1'].find('verb')
verbs = [verb.text for verb in elems]
于 2012-06-18T22:51:01.180 に答える