【发布时间】:2017-12-03 21:41:35
【问题描述】:
<multi-routing-engine-item>
<re-name>n</re-name>
<zones-information xmlns="http://xml48/juzones" j:s="de">
<zones-security>
<zones-security-zonename>A</zones-security-zonename>
<zones-security-interfaces>
<zones-security-interface-name>reth2.66</zones-security-interface-name>
<zones-security-interface-name>2.68</zones-security-interface-name>
</zones-security-interfaces>
</zones-security>
<zones-security>
<zones-security-zonename>B</zones-security-zonename>
问题1:
>>> response_zone.xpath("//zones-information/zones-security[//zones-security-interface-name[text()='reth2.66']]/zones-security-zonename/text()")
['A', 'B', 'C']
>>>
>>> response_zone.xpath("//zones-information/zones-security[.//zones-security-interface-name[text()='reth2.66']]/zones-security-zonename/text()")
['A']
.// 和 // 在这种情况下有什么区别。有点迷茫。
问题2:
>>> response_zone.xpath(".//zones-security[.//zones-security-interface-name[text()='reth2.66']]/zones-security-zonename/text()")
['A']
>>> response_zone.xpath("//zones-security[.//zones-security-interface-name[text()='reth2.66']]/zones-security-zonename/text()")
['A']
在 question2 中,他们有相同的结果.....
我对此感到困惑。需要帮助。
【问题讨论】:
-
.指的是当前节点。如果查询以/或//开头,则它是相对于文档的根目录的。//遍历所有后代。把这些放在一起,你会得到什么?