使用Python中的minidom提取节点引用ID

时间:2012-07-03 14:54:54

标签: python xml minidom

我在Python中使用minidom,我想搜索节点列表(书),对于属性“name”等于“statistics”的每个书籍节点,我想打印节点引用。以下是我要处理的XML文件示例:

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

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

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

所需的输出是:

123
345

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

遍历book元素并查看name节点以查看其统计信息。如果打印出书本节点的属性,则为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