0

私は Python で minidom を使用しています。ノード (本) のリストを検索し、属性「名前」が「統計」に等しい各本ノードについて、ノード参照を出力したいと考えています。処理したい XML ファイルの例を次に示します。

<book id='123'>
    <name>statistics</name>
</book>

<book id='234'>
    <name>mathematics</name>
</book>

<book id='345'>
    <name>statistics</name>
</book>

望ましい出力は次のとおりです。

123
345

どうすればこれを達成できるかについてのアイデアはありますか?

4

1 に答える 1

1

book 要素を反復処理し、name ノードを調べて、その統計情報を確認します。book ノードの属性である場合は、id.

import xml.dom.minidom
Document = "<books>\
            <book id='123'>\
                <name>statistics</name>\
            </book>\
            <book id='234'>\
                <name>mathematics</name>\
            </book>\
            <book id='345'>\
                <name>statistics</name>\
            </book></books>"

dom = xml.dom.minidom.parseString(Document)
for book in dom.getElementsByTagName("book"):
   node = book.getElementsByTagName("name")[0] 
   if node.firstChild.data.strip().lower() == "statistics":
        print int(book.getAttribute("id").strip())

出力

123
345
于 2012-07-03T15:08:48.997 に答える