如果通过搜索和阅读lxml文档可以轻松地回答这个问题,我深表歉意,但我一直试图无济于事。在
我经常使用lxml的findall查询XML文件。最近,我需要使用通配符来提取我需要的数据。这导致我使用Xpath。在
我已经成功地使用ETXPath而不是Xpath来实现这一点。我不明白为什么。XML文件的摘要
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DC xmlns="http://tradefinder.db.com/Schemas/MEL/MelHorizon_0_4_2.xsd">
<Header>
<FileName>DBL_MPA_Gap_PRD_2017-06-01T07-50-52.xml</FileName>
<ValidityDate>2017-05-31</ValidityDate>
<Version>0.42</Version>
<NoOfRecords>17228</NoOfRecords>
</Header>
<Overviews>
<OverviewLevelTimeStamp>
<Identifier>Z 1 Index, TRADE</Identifier>
<Level>2.2120000000000002</Level>
<Timestamp>09:00:00.000</Timestamp>
</OverviewLevelTimeStamp>
</Overviews>
</DC>
我的python代码用来提取
^{pr2}$其中“gap_xml”=文件的解析。在
这个代码有效。由于某些原因,当我尝试使用xpath时,它没有这样做。这需要我用xpath重命名ETXPath。原因是因为我需要使用通配符,所以不是“z1 Index,TRADE”,而是z1 Index*。在
谢谢,让我知道如何改进这个问题。在
contains(., "Z 1 Index,")
就像说*Z1 Index*
,这是一个substring
搜索。在下面是一个使用contains的示例,它类似于xpath中的一个通配符,并映射使用的命名空间:
结果
^{pr2}$请注意,lxmlxpath返回一个列表,因此必须从列表中提取匹配的节点。在
相关问题 更多 >
编程相关推荐