BeautifulSoup XML Python, извлекающий атрибуты из определенных тегов

Этот XML-документ содержит набор тэгов events-data. Я хочу извлечь информацию из самых последних events-data. Например, в приведенном ниже коде я хочу перейти к тегу последних events-data, спуститься к тегу event-date и извлечь текст дочернего тега date. На данный момент я использую BeautifulSoup в Python для перемещения по этому документу. Есть идеи?

<!--?xml version="1.0" encoding="UTF-8"?-->
 <first-tag>
 <second-tag>
 <events-data>
 <event-date>
 <date>20040913</date>
 </event-date>
 </events-data>

 <events-data> #the one i want to traverse to grab date text
 <event-date>
 <date>20040913</date>
 </event-date>
 </events-data> 
 </second-tag>
 </first-tag>
1 ответ

Это использует BeautifulSoup 3

import os
import sys

# Import Custom libraries
from BeautifulSoup import BeautifulStoneSoup

xml_str = \
'''
<!--?xml version="1.0" encoding="UTF-8"?-->
 <first-tag>
 <second-tag>
 <events-data>
 <event-date>
 <date>20040913</date>
 </event-date>
 </events-data>

 <events-data>
 <event-date>
 <date>20040913</date>
 </event-date>
 </events-data> 
 </second-tag>
 </first-tag>
'''
soup = BeautifulStoneSoup(xml_str)

event_data_location = lambda x: x.name == "events-data"

events = soup.findAll(event_data_location)
if(events):
 # The last event-data
 print events[-1].text

licensed under cc by-sa 3.0 with attribution.