Xpath获取指定元素相邻的不被标签括起来的文本

发布时间 2023-11-18 18:19:33作者: 黄伟鸿

如图:
image
已知图片中标注1、2、3对应的内容

在业务中我需要获取标志2对应的"58"这个值,但是这个值不包括在某个标签中,在span“集数”和br标签之间,为了减小获取"58"这个值不被之前的标签数量的影响

  1. 先获取标签1所对应的元素,因为标签1有property="v:initialReleaseDate"这个属性和属性值,所以很容易用xpath获取,且具有唯一性:
    //span[@property="v:initialReleaseDate"]

  2. 获取标签1元素对象之后,我们可以根据标签1为基准,算一下"58"这个值是相邻的第几个元素,如图可知除去span标签不看,是相邻2个元素(包括br在内)
    *[@id="info"]/span[@property="v:initialReleaseDate"]/following-sibling::text()[2]

    之后就可以拿到标注2的值
    image

  3. 成功拿到标注2的值“58”后,如果我们好想再拿到标注3的"45分钟"这个值, 那我们就算算要相邻几个元素, 经过不断修改following-sibling::text()[index]中index的值最后发现是相邻的第4个值。
    *[@id="info"]/span[@property="v:initialReleaseDate"]/following-sibling::text()[4]
    image