xpath仅检索第一级数据

时间:2013-12-02 02:39:40

标签: html xpath

这是我的HTML:

    <html>
        <body>
            <div id="articleBody">
                <p>text</p>
                <p>text2</p>
                <div>
                    <p>text3</p>
                    <p>text4</p>
                </div>
            </div>
        </body>
    </html>

这是我的xpathL

    //div[@id="articleBody"]//p

这样可以正常工作,但我不想要第二个div中的任何p tags

我如何做到这一点?另外,我不希望它仅限于要排除的div元素。

我真正想要的是查询并仅返回第一级p标记

1 个答案:

答案 0 :(得分:1)

这实际上取决于你想要抓住的东西。如果仅使用给定p下的div标记,则可以使用:

//div[@id="articleBody"]/p

鉴于您使用的是@id属性,实际上应该只有一个div具有该ID,这意味着这只会抓取{{1}的任何子p元素}}

在两个节点之间使用div表示法时,它会从给定节点x//y中获取所有后代y节点。您只需要直接子项,因此使用x