<?xml version="1.0" encoding="UTF-8"?>
<parent>
<child1>
<details id="1">
<name ab="1">Ram</name>
<age ab="2">45</age>
<phone>
<phone1>777777777</phone1>
</phone>
</child1>
</details>
<child2>
<details id="2">
<name ab="3">kiran</name>
<age ab="4">57</name>
<phone>
<phone1>888888888</phone1>
</phone>
</details>
<child2>
</parent>
如果我给出了输入2,它应该返回child2的详细信息,即
o / p应该是详情id =&#34; 2&#34;
姓名ab 3 kiran年龄4 4 57电话888888888888
如果我给出了输入1,它应该返回child1的详细信息,依此类推。
答案 0 :(得分:0)
你可以试试这个:
import xml.etree.ElementTree as ET
my_xml = 'some_xml.xml'
tree = ET.parse(my_xml)
root = tree.getroot()
id = str(input('Enter id: '))
for element in root:
if element.tag == 'child' + id:
details = element.find('details')
for detail in details:
if detail.tag == 'phone':
continue
else:
print('{} : {}'.format(detail.tag, detail.text))
phones = details.find('phone')
for phone in phones:
print('{} : {}'.format(phone.tag, phone.text))
xml位于文件some_xml.xml
中,与python代码位于同一目录中。顺便说一下,你的xml文件不正确。它应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<parent>
<child1>
<details id="1">
<name ab="1">Ram</name>
<age ab="2">45</age>
<phone>
<phone1>777777777</phone1>
</phone>
</details>
</child1>
<child2>
<details id="2">
<name ab="3">kiran</name>
<age ab="4">57</age>
<phone>
<phone1>888888888</phone1>
</phone>
</details>
</child2>
</parent>
修复你的,应该可以正常工作。
请注意,xml.etree.ElementTree
模块对于恶意构造的数据不安全,如文档中所述。