【发布时间】:2017-09-18 12:20:06
【问题描述】:
非常感谢您的阅读。对于这样一个初学者的问题,我深表歉意,因为我确信这是一个简单的答案。非常感谢任何指导。
我有一个 xml 文件,我正在用 ElementTree 解析它,其中的元素如下所示:
data.xml:
<?xml version="1.0" encoding="utf-8"?><listings><listing id="26496000" dateFirstListed="2012-10-13" dateLastListed="2013-10-06" market="SALE" propertyType="DETACHED" bedrooms="4" latestAskingPrice="314950"><address key="u935d·0" udprn="50812465" line1="12 Millcroft" line2="Millhouse Green" town="SHEFFIELD" postcode="S36 9AR" /><description> SOME TEXT HERE </description></listing>
我想访问<description>标签和<address key>。
使用https://docs.python.org/2/library/xml.etree.elementtree.html 中列出的指南我写道:
import xml.etree.ElementTree
data = xml.etree.ElementTree.parse('data.xml')
root = data.getroot()
并遍历子元素:
for child in root:
print child.tag, child.attrib
>
listing {'dateLastListed': '2013-10-06', 'dateFirstListed': '2012-10-13', 'propertyType': 'DETACHED', 'latestAskingPrice': '314950', 'bedrooms': '4', 'id': '26496000', 'market': 'SALE'}
这只会给我<listing> 标签的子元素。如何更改上述表达式以访问<address key> 和<description>?
编辑:遵循这个问题Parsing XML with Python - accessing elements的指导
我试着写了:
for i in root.findall("listing"):
description = i.find('description')
print description.text
>
AttributeError: 'NoneType' object has no attribute 'text'
【问题讨论】:
标签: python html xml parsing elementtree