我有一个以xml文档表示的文件系统,格式如下:
<xml xmlns="namespace1" xmlns:ns2="namespace2">
<entry>
<id>123</id>
<ns2:content name="type">directory</ns2:content>
<ns2:content name="numErrors">3</ns2:content>
</entry>
...
<entry>
<id>456</id>
<ns2:content name="type">file</ns2:content>
<ns2:content name="docState">success</ns2:content>
</entry>
...
</xml>
我需要做的是,使用Python的lxml,只检索代表目录的entry
个对象。所有条目都包含<ns2:content name="docState">
对象,但我需要知道如何检索该对象文本等于entry
的{{1}}个对象列表。我可以在几个不方便的步骤中执行此操作,但我宁愿对其进行一次查询。以下是我将逐步完成的方式:
directory
任何人都可以在for语句中解释如何执行此操作,而不是使用if吗?
由于
答案 0 :(得分:5)
使用以下XPath表达式:
//ns1:entry[ns2:content[@name='type' and .='directory']]