我很抱歉如果通过搜索和阅读lxml文档可以很容易地回答这个问题,但我试图无效。在Python中使用XPath和ETXPath的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>
的一个抽象的,用来提取
findshiz = ETXPath("//" + namespace + "DC/" + namespace + "Overviews/" + namespace + "OverviewLevelTimeStamp[" + namespace + "Identifier= 'Z 1 Index, TRADE']")
required_nodes = findshiz(gap_xml)
其中 “gap_xml”=文件的解析我的Python代码。
此代码有效。出于某种原因,当我尝试使用xpath时,它不会。这涉及到我只是用xpath重命名ETXPath。原因是因为我需要使用通配符,所以不是“Z 1 Index,TRADE”,而是Z 1 Index *。
谢谢,让我知道反正改善问题。
*命名空间*是什么?请显示作业行:'namespace = ...' – Parfait