坚持执行有关URL和XML解析的任务。我有数据,但似乎无法使findall()工作。我知道一旦我能使findall()正常工作,我就会有一个列表可以循环到。任何见解都是很好的,并希望在可能的情况下获得温和的推销而不是直接的答案。谢谢!
import urllib.request, urllib.parse, urllib.error
import xml.etree.ElementTree as ET
fhand = urllib.request.urlopen('http://py4e-data.dr-chuck.net/comments_42.xml')
raw_data = fhand.read().decode()
xml_data = ET.fromstring(raw_data)
lst = xml_data.findall('name')
print(lst)
findall
不是递归的,这意味着如果它不在您调用的元素的正下方findall
(如果不使用xpath的话),它将找不到一个节点/元素。
而是使用iter
:
import urllib.request
import xml.etree.ElementTree as ET
fhand = urllib.request.urlopen('http://py4e-data.dr-chuck.net/comments_42.xml')
raw_data = fhand.read().decode()
xml_data = ET.fromstring(raw_data)
for name_node in xml_data.iter('name'):
print(name_node.text)
或findall
搭配xpath
:
xml_data.findall('comments/comment/name')
两者都会输出
Romina
Laurie
Bayli
Siyona
Taisha
Alanda
Ameelia
Prasheeta
Asif
Risa
Zi
Danyil
Ediomi
Barry
Lance
Hattie
Mathu
Bowie
Samara
Uchenna
Shauni
Georgia
Rivan
Kenan
Hassan
Isma
Samanthalee
Alexa
Caine
Grady
Anne
Rihan
Alexei
Indie
Rhuairidh
Annoushka
Kenzi
Shahd
Irvine
Carys
Skye
Atiya
Rohan
Nuala
Maram
Carlo
Japleen
Breeanna
Zaaine
Inika
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句