通过xpath 1.0分别选择子元素elem

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过xpath 1.0分别选择子元素elem相关的知识,希望对你有一定的参考价值。

我想分别从表的td获取文本值,如下所示

//div[@id='foo']//table[contains(@class,'moo')][1]/tbody/tr/td[1]/text()
//div[@id='foo']//table[contains(@class,'moo')][2]/tbody/tr/td[1]/text()

但上面的查询给我相同的结果。

<html>
    <body>
        ....

        <div id="foo">
            <div>
                <div>
                    <table class="moo"><tbody><tr><td>text1</td></tr></tbody></table>
                    <table class="moo"><tbody><tr><td>text2</td></tr></tbody></table>
                </div>
            </div>
        </div>
    </body>
</html>
答案

好的,我找到了解决方案如下;

(//div[@id='foo']//table[contains(@class,'moo')])[1]/tbody/tr/td[1]/text()
(//div[@id='foo']//table[contains(@class,'moo')])[2]/tbody/tr/td[1]/text()

以上是关于通过xpath 1.0分别选择子元素elem的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XPath 选择任意深度的子元素?

使用 XPath 获取子元素值,其中日期是元素值

XPATH 选择类型元素名称为 xs:simpleType 的子元素

xpath选择父节点类型不同的子节点

selenium之css定位小结

如果通过当前元素知道父元素同级元素