【发布时间】:2020-08-23 12:36:09
【问题描述】:
我的 XML 文件是:
<releases>
<release id="1">
<title>Title1</title>
<formats>
<format name="CD" qty="2" text="">
</format>
</formats>
<released>2016-02-00</released>
</release>
<release id="2">
<title>Title2</title>
<formats>
<format name="LP" qty="2" text="">
</format>
</formats>
<released>2018-03-00</released>
</release>
<release id="3">
<title>Title3</title>
<formats>
<format name="CD" qty="1" text="">
</format>
</formats>
<released>1995-01-15</released>
</release>
</releases>
在 Python3 中,我想查找“格式”名称 =“CD”且“已发布”文本包含文本“1995”的版本 ID(因此版本 ID 3 应该是结果)
我有这段代码可以找到 CD 发行版并打印发行日期:
for rls in root.findall(".//format[@name='CD']....//released"):
print (rls.tag, rls.attrib, rls.text)
我也有这段代码,它可以找到所有带有“1995”的版本并打印第一个结果的日期:
print (root.xpath("/releases/release/released[contains(text(),'1995')]")[0].text)
我很难找到如何将两者结合起来(我同时使用findall,另一个使用xpath,不漂亮)。
【问题讨论】: