XPath是否会随其匹配的内部内容变更而发生变化?
关于XPath是否会随匹配内容变更的解答
核心结论:XPath本身是你手动编写的定位规则,不会因为网页上匹配节点的内部内容变更就自动发生变化,但原XPath能不能继续使用,取决于你编写XPath时有没有依赖节点的文本内容。
- 若XPath不依赖文本内容定位
比如你用节点属性、层级关系编写的XPath,示例://div[@class="post-body"]/span[2],不管这个span标签里的文本是“supports”还是修改为“support”,XPath本身完全不变,也能正常匹配到目标节点。 - 若XPath直接依赖文本内容定位
比如你编写的规则是匹配文本等于“supports”的节点,XPath示例://*[text()="supports"],这种情况下网页把文本改成“support”之后,原来的XPath不会自行修改,但已经匹配不到目标节点了,需要你手动调整XPath里的文本匹配条件才能正常使用。
对应你举的示例:如果原XPath没有写死匹配“supports”文本,XPath会保持原有状态不变,可正常使用;如果原XPath是通过匹配“supports”文本定位的,原XPath本身不会自动变更,但会直接失效,需要人工调整规则。
内容的提问来源于stack exchange,提问作者Annon
相关产品推荐
相关产品推荐

