祖先与祖先或自我之间的差异

J_C*_*der 5 xslt selenium xpath selenium-webdriver

我知道xpath中的祖先,但是这个祖先或自我是什么.当我们必须使用祖先或自我时.请给我任何例子.

har*_*r07 8

我认为轴名称是不言自明的.ancestoraxis 选择当前上下文元素的ancestor-or-self祖先,同时选择祖先和当前元素本身.例如,请考虑以下XML:

<root>
    <item key="a">
        <item key="b" target="true">
            <context key="c" target="true"/>
        </item>
    </item>
</root>
Run Code Online (Sandbox Code Playgroud)

以下使用ancestoraxis的xpath 将找到该项,b因为它具有target属性equals true并且bcontext元素的祖先.但XPath不会选择context元素本身,尽管它target等于true:

//context/ancestor::*[@target='true']
Run Code Online (Sandbox Code Playgroud)

xpath测试器中上述XPath的输出:

Element='<item key="b" target="true">
  <context key="c" target="true" />
</item>'
Run Code Online (Sandbox Code Playgroud)

ancestor-or-self轴对比,它将返回相同的context元素:

//context/ancestor-or-self::*[@target='true']
Run Code Online (Sandbox Code Playgroud)

第二个XPath的输出:

Element='<item key="b" target="true">
  <context key="c" target="true" />
</item>'
Element='<context key="c" target="true" />'
Run Code Online (Sandbox Code Playgroud)