Печать атрибутов XML-тегов с использованием дерева элементов

#python #xml-parsing

#python #xml-синтаксический анализ

Вопрос:

Я использую следующие инструкции для печати значения тега 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
  

Ответ №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'}
  

Комментарии:

1. Его рабочее спасибо. Мне нужен только один вопрос id . Так ли это правильно print(value.attrib['0']) . спасибо `

2. это еще проще pprint(value.attrib[‘id’])

3. Я смотрю <page id='...'> , существует ли <title> значение для печати. tree.find("//page[id='31239628']/title").text есть предложения?

4. если tree.getiterator(tag=’страница’): найдите заголовок, как указано выше.