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 元素并查看名称节点以查看其统计信息。如果是打印出书节点的属性,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 回答