XPath如何在内部工作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

当我编写XPath时,浏览器从哪里获取页面的XML,简而言之,浏览器是如何在内部使用XPath的。

我正在学习Selenium,我正在使用XPath来识别WebElement。

提问于
用户回答回答于

通常,XPath表达式指定选择一组XML节点的模式。然后,XSLT模板在应用转换时使用这些模式。

(另一方面,XPointer添加了定义点或范围的机制,以便XPath表达式可用于寻址)。

XPath表达式中的节点不仅仅指的是元素。它们还涉及文本属性等。实际上,XPath规范定义了一个抽象文档模型

用户回答回答于

通常,XPath处理器将(a)XPath表达式和(b)用作上下文节点的节点作为输入; 它针对该上下文节点计算该表达式,并将结果返回给调用应用程序。

因此,用于调用XPath的API通常看起来像:

result = xpath.eval(expression, contextNode)

也许:

result = contextNode.evalXPath(expression)

也许:

result = xpath.compile(expression).eval(contextNode)

在Web浏览器环境中,默认情况下可能会将contextNode隐式设置为HTML页面。

实际上,用于调用XPath的API具有额外的复杂性,例如允许设置命名空间上下文,并允许将外部变量/参数绑定到值。

扫码关注云+社区

领取腾讯云代金券