我使用ElementTree解析从网站检索到的某些XML,但不知何故,我无法看到能够使用" .find"或" .findall"。我试图使用ElementTree,我厌倦了lxml.etree,没有任何东西在和我合作。我的目标是从我从URL检索到的XML文件中检索//课程。
import requests
import xml.etree.ElementTree as ET
res = requests.get(COURSES_URL).text #Storing the XML into res
XML = ET.fromstring(res)
print(XML.findall('//COURSE'))
COURSES_URL是我自己的URL,我从中检索XML,是的,因为我得到了我想要的输出XML(样本),所以它正在工作:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by Oracle Reports version 11.1.2.1.0 -->
<SYRSPOS_REP>
<LIST_G_PROGRAM>
<G_PROGRAM>
<SPRIDEN_ID>U712214</SPRIDEN_ID>
<STUDENT_NAME>Mark Adam Johns</STUDENT_NAME>
<SMBPOGN_PIDM>98</SMBPOGN_PIDM>
<SMBPOGN_REQUEST_NO>46</SMBPOGN_REQUEST_NO>
<COURSE ID=1411001>PASS</COURSE>
<COURSE ID=1411023>PASS</COURSE>
<COURSE ID=1411136>PASS</COURSE>
</G_PROGRAM>
</LIST_G_PROGRAM>
</SYRSPOS_REP>
答案 0 :(得分:0)
解决:
显然我有2个问题。
首先,我不能在打印中使用findall
,因为它返回一个列表,我必须在循环中执行。 (for i in XML.findall()
),然后我打印i.text()
其次,我必须在引号后添加一个点,如".//COURSES"