ewo*_*wok 4 python xml xpath lxml
我有一个以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>
Run Code Online (Sandbox Code Playgroud)
我需要做的是,使用Python的lxml,只检索entry代表目录的对象.所有条目都包含一个<ns2:content name="docState">对象,但我需要知道如何检索entry该对象的文本等于的对象列表directory.我可以在几个不方便的步骤中执行此操作,但我宁愿对其进行一次查询.这是我按步骤进行的方式:
#xml_parse.py
ns={'ns1':'namespace1','ns2':'namespace2'}
for node in tree.xpath("//ns1:entry",namespaces=ns):
if node.find("ns2:content[@name='type']").text=="directory":
#do stuff with node
pass
Run Code Online (Sandbox Code Playgroud)
谁能解释如何在for语句中执行此操作而不是使用if?
谢谢
使用以下XPath表达式:
//ns1:entry[ns2:content[@name='type' and .='directory']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1999 次 |
| 最近记录: |