【问题标题】:Print XML tag attributes using element tree使用元素树打印 XML 标记属性
【发布时间】:2011-10-19 08:11:52
【问题描述】:

我正在使用以下语句来打印 Title 标签的值。它工作正常。但我也想打印<page id='...' ....... 可能吗?谢谢

            <mediawiki>
          <siteinfo>
            <sitename>Wiki</sitename>
            <namespaces>
              <namespace key="-2" case="first-letter">Media</namespace>
            </namespaces>
          </siteinfo>
        <page id="31239628" orglength="6822" newlength="4524" stub="0" categories="0" outlinks="1" urls="10">
        <title>Title</title>
        <categories></categories>
        <links>15099779</links>
        <urls>
        </urls>
        <text>

        Books

        </text>
        </page>

        </mediawiki>

这是我的工作代码。其中打印标题标签值。

import xml.etree.cElementTree as etree
tree = etree.parse('find_title.xml')
for value in tree.getiterator(tag='title'):
    print value.text

【问题讨论】:

    标签: python xml-parsing


    【解决方案1】:

    您可以尝试以下方法:

    import xml.etree.cElementTree as etree
    from pprint import pprint
    tree = etree.parse('find_title.xml')
    for value in tree.getiterator(tag='title'):
        print value.text
    for value in tree.getiterator(tag='page'):
        pprint(value.attrib)
    

    它应该输出如下内容:

    $ python file.py
    Title
    {'categories': '0',
     'id': '31239628',
     'newlength': '4524',
     'orglength': '6822',
     'outlinks': '1',
     'stub': '0',
     'urls': '10'}
    

    【讨论】:

    • 它的工作谢谢。还有一个问题,我只需要id。那么它是否正确print(value.attrib['0'])。谢谢`
    • 更简单的 pprint(value.attrib['id'])
    • 我正在寻找如果&lt;page id='...'&gt; 存在,则打印&lt;title&gt; 值。 tree.find("//page[id='31239628']/title").text 有什么建议吗?
    • if tree.getiterator(tag='page'): 查找标题如上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多