我有一个包含如下数据的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<document date="2021-03-01" name="dataExport">
<CASHFLOW CASHFLOW_ID="001" C001="06-08"/><CASHFLOW_FIELD CASHFLOW_ID="001" C001="06-08" FIELDNAME="A001" VALUE="0"/><CASHFLOW_FIELD CASHFLOW_ID="001" F001="04-08-01" FIELDNAME="C254" VALUE="15.78"/>
<CASHFLOW CASHFLOW_ID="002" C001="06-08"/><CASHFLOW_FIELD CASHFLOW_ID="001" C001="06-08" FIELDNAME="A001" VALUE="2"/><CASHFLOW_FIELD CASHFLOW_ID="002" C001="06-08" FIELDNAME="C254" VALUE="10.55"/>
</document>
使用 XPath,我想获取属性“VALUE”的值,其中属性“CASHFLOW_ID”的值为“002”,属性“FIELDNAME”的值为“C254”。也就是说,我想要值 "10.55"。
我尝试了以下方法来实现我的目标(使用 python 库 lxml):
value_I_want = tree.xpath("//@VALUE[@CASHFLOW_ID='001'][@FIELDNAME='C254']")
但不是给我 10.55
,而是给我一个空列表 ([]
)。
我还尝试了以下方法:
value_I_want = tree.xpath("//[@VALUE][@CASHFLOW_ID='001'][@FIELDNAME='C254']")
...但这是一个无效的表达式。
获得我想要的东西的正确 XPath 表达式是什么?
答案 0 :(得分:1)
//CASHFLOW_FIELD[@CASHFLOW_ID='001' and @FIELDNAME='C254']/@VALUE