用XML解析
问题描述:
我试图解析一个网络博客页面,并将某些数据拉出到列表中。这里是XML ..用XML解析
http://www-01.ibm.com/software/support/lifecycle/rss/PLCWeeklyXMLDownload.xml
有多个记录,但每次我需要拉出软件名称,版本号,版本号,ModLevelNumber和最终服务日期(如果有的话),并把它们到一个列表
我运行Python代码,但进出口新的XML,任何帮助表示赞赏
def myDownload():
import xml.etree.ElementTree as et
import urllib.request
response = urllib.request.urlopen("http://www-01.ibm.com/software/support/lifecycle/rss/PLCWeeklyXMLDownload.xml")
tree = et.parse(response)
root = tree.getroot()
aList=[]
for child in root:
for node in child.findall("SWTitle"):
title = node.text
aList.append(title)
for nodes in child.findall("Versions"):
for version in nodes.findall("Version"):
for release in version.findall("Release_Mods"):
for mod in release.findall("Release_Mod"):
rNum = mod.find("releaseNumber")
rNumber = rNum.text
nNum = mod.find("modLevelNumber")
nNumber=nNum.text
aList.append(rNumber)
aList.append(nNumer)
谁能帮助调整此代码,因为它似乎没有工作
答
可以使用lxml库这样的:
import requests
from lxml import etree
r = requests.get('http://www-01.ibm.com/software/support/lifecycle/rss/PLCWeeklyXMLDownload.xml')
xml = r.content
xml_dom = etree.fromstring(xml)
# Iterate over <SWTitleRecord>
for record_node in xml_dom:
data = {}
for attr_node in record_node:
if attr_node.tag == 'SWTitle'
data['title'] = attr_node.text
elif attr_node.tag == 'Versions':
# parse versions
...
+0
你能检查我的代码吗 – BAI
答
使用lxml的库来解析XML。 ElementTree不适用于更多嵌套标签。
你有什么问题? – Blender
寻找python的xml库。然后,如果你知道节点在xml树中的位置,那么你可以告诉它看起来那里。 – Patashu
@Blender你可以检查我的代码 – BAI