Я пытаюсь написать скрипт Python, который печатает значение определенного тега в выходе XML. Здесь значение тега, которое мне нужно распечатать, - это значение в каждом вхождении в выходе XML. Я попытался, как показано ниже, но он показывает ошибку атрибута. Что здесь может быть не так? Каков правильный способ получения и печати значений некоторых других тегов, которые мне интересны? Любая помощь, пожалуйста? Благодарю.print tag value from xml using python
import xml.etree.ElementTree as ET
mystring="""<?xml version="1.0" encoding="UTF-8"?>
<main>
<student>
<male>
<result>pass</result>
<name>Paul</name>
<address>boston</address>
<localreference>
<name>Charlie</name>
</localreference>
</male>
<female>
<result>pass</result>
<name>Rose</name>
<address>newyork</address>
<localreference>
<name>Charlie</name>
</localreference>
</female>
</student>
<student>
<male>
<result>fail</result>
<name>Philippe</name>
<address>boston</address>
<localreference>
<name>White</name>
</localreference>
</male>
</student>
</main>"""
main = ET.fromstring(mystring)
for student in main:
if (student.tag == "student"):
print student.find("male/result").text
print student.find("female/result").text
Ошибка>
# python new5.py
pass
pass
fail
Traceback (most recent call last):
File "new5.py", line 39, in <module>
print student.find("female/result").text
AttributeError: 'NoneType' object has no attribute 'text'
Благодаря Dawg. Однако я получаю эту ошибку. # python new5.py мужчина Traceback (последний звонок последний): Файл "new5.py", строка 40, в print '\ t {: 20}: {}'. format (student.find (' name '). text, student.find (' result '). text) ValueError: имя поля нулевой длины в формате –
user3721640
Какая версия os Python? У вас, вероятно, есть Python 2.6. Используйте '' \ t {0:20}: {1} ''для строки формата. – dawg
Удивительно, что сработало. Я использую 2.6.6. Извините, что я начинаю здесь, не могли бы вы объяснить последнее заявление печати? print '\ t {: 20}: {}'. format (student.find ('name'). text, student.find ('result'). text) Спасибо Dawg .. – user3721640