Stack Overflow en español Asked by LUIS BENITO on January 18, 2021
tengo un problema y lo simplifiqué así:
Tengo 5 tags con el nombre: "outline", unas están más anidadas que otras y todas tienen el atributo ‘text’.
Sucede que con mi código he logrado capturar los valores de ‘text’ pero de todas los "outline" e incluso de los "outline" más anidados, pero yo solo quiero de los "outline" más cercanos a la raíz.
Este el código que estoy usando:
from xml.etree import ElementTree
with open('podcasts.opml.xml', 'rt') as f:
tree = ElementTree.parse(f)
root = tree.getroot()
nodos = root.findall('.//body//outline')
for node in nodos:
texto = node.attrib.get('text')
print(texto)
Esta es la salida:
Non-tech
99% Invisible
Python
Talk Python to Me
Podcast.init
Pero yo solo necesito: Non-tech Python
El problema que veo es que usas esto: nodos = root.findall('.//body//outline')
Cuando navegas un xml //
implica que puede saltar cuantos nodos intermedios hagan falta,
sustituyendo esa línea por nodos = root.findall('.//body/outline')
debería darte solo los que cuelgan directamente de body
Correct answer by Benito-B on January 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP