我希望从XML文件(https://digitallibrary.un.org/search?ln=en&p=A/RES/72/266&f=&rm=&ln=en&sf=&so=d&rg=50&c=United+Nations+Digital+Library+System&of=xm&fti=0&fti=0)中隔离以下值
<collection>
<record>
...
<datafield tag="993" ind1="2" ind2=" ">
<subfield code="a">A/C.5/72/L.22</subfield> # Value to isolate: A/C.5/72/L.22
</datafield>
<datafield tag="993" ind1="3" ind2=" ">
<subfield code="a">A/72/682</subfield> # Value to isolate: A/72/682
</datafield>
<datafield tag="993" ind1="4" ind2=" ">
<subfield code="a">A/72/PV.76</subfield> # Value to isolate: A/72/PV.76
</datafield>
...
</record>
<record>
...
<datafield tag="993" ind1="2" ind2=" ">
<subfield code="a">A/C.5/72/L.22</subfield> # Value to isolate: A/C.5/72/L.22
</datafield>
<datafield tag="993" ind1="3" ind2=" ">
<subfield code="a">A/72/682</subfield> # Value to isolate: A/72/682
</datafield>
</record>
...
</collection>
我准备的代码似乎只为每条记录标识标记为993的第一项
for record in root:
if record.find("{http://www.loc.gov/MARC21/slim}datafield[@tag='993']/{http://www.loc.gov/MARC21/slim}subfield[@code='a']") is not None:
symbol = record.find("{http://www.loc.gov/MARC21/slim}datafield[@tag='993']/{http://www.loc.gov/MARC21/slim}subfield[@code='a']").text
print symbol
是否有一种使用ElementTree的xpath循环搜索多个属性的方法?先谢谢你
docs显示
.find()
只获取第一个匹配的子元素。听起来你想要.findall()
以下几点似乎对我有用:
要完成用户3091877的回答,请选择其他XPath选项:
编辑:这个将返回6个值(@tag=993和@ind1=3):
相关问题 更多 >
编程相关推荐