【问题标题】:Parse XML in Python with lxml.etree使用 lxml.etree 在 Python 中解析 XML
【发布时间】:2014-11-26 12:49:10
【问题描述】:

如何使用 python 解析这个站点 (http://www.tvspielfilm.de/tv-programm/rss/heute2015.xml) 以获取例如今天 SAT 20:15 的电视节目? 我试过 Python 库 lxml.etree,但失败了:

#!/usr/bin/python
import lxml.etree as ET 
import urllib2

response = urllib2.urlopen('http://www.tvspielfilm.de/tv-programm/rss/heute2015.xml')
xml = response.read()

root = ET.fromstring(xml)

for item in root.findall('SAT'):
    title = item.find('title').text
    print title

【问题讨论】:

  • 如果你使用 findall('SAT') 这个解析器将搜索所有名为 SAT 的标签。由于没有这样的标签,所以不会有结果。我建议您遍历所有项目的“项目”标签

标签: python xml parsing lxml


【解决方案1】:

Element.findall 方法使用 xpath 表达式作为参数。 'SAT' 仅查找名为 SAT 的根节点的直接子节点,女巫是 'rss'。如果您需要在文档中找到标签,请使用'.//SAT'

表达式'.//items' 就是你要找的:

#!/usr/bin/python
import lxml.etree as ET 
import urllib2

response = urllib2.urlopen('some/url/to.xml')
xml = response.read()

root = ET.fromstring(xml)

for item in root.findall('.//item'):
    title = item.find('title').text
    print title

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 2017-09-22
  • 2022-01-18
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多