Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xml ElementTree:仅查找前3个同名元素的值_Python_Xml_Elementtree - Fatal编程技术网

Python xml ElementTree:仅查找前3个同名元素的值

Python xml ElementTree:仅查找前3个同名元素的值,python,xml,elementtree,Python,Xml,Elementtree,我想解析xml响应并将特定数据保存到列表中 XML 我可以使用上面的脚本提取所有name元素,但是xml响应包含很多name元素。我只需要前三个名字 我使用列表理解来减少代码行数 我的问题 如何只获取前三个名称而不解析xml中的所有名称 我可以使用任何循环将p.find限制为3次迭代吗 还有其他选择吗 您可以使用: <ack>Success</ack> <version>1.13.0</version> <data> <nam

我想解析xml响应并将特定数据保存到列表中

XML

我可以使用上面的脚本提取所有name元素,但是xml响应包含很多name元素。我只需要前三个名字

我使用列表理解来减少代码行数

我的问题

  • 如何只获取前三个名称而不解析xml中的所有名称
  • 我可以使用任何循环将p.find限制为3次迭代吗
  • 还有其他选择吗
您可以使用:

<ack>Success</ack>
<version>1.13.0</version>
<data>
 <name>AAAA</name>
 <age>00</age>
<data>
 <name>BBBB</name>
 <age>11</age>
<data>
 <name>CCCC</name>
 <age>22</age>
.
.
.
.
<data>
 <name>ZZZZ</name>
 <age>999</age>
import requests, xml.etree.ElementTree as ET

e = requests.get('http://sample.com/xml')

#parse the response and get root
eroot = ET.fromstring(e.text)

#iterate over root and extract data
names = [ p.find('name').text for p in eroot.iter('data') ]

print(names)
from itertools import islice

names = [ p.find('name').text for p in islice(eroot.iter('data'), 0, 3)]