XPath简明使用

 返回对象:  

  $xpHandle = new \DOMXPath($doc);
  $list = $xpHandle->query("//div[@class='container']/h4/button");

  执行匹配后返回list是一个对象数组,其中对象是DOMElement,都是均继承DOMNode

  简单继承关系如下图

 

 

语法规则:

/ :按照层级一代一代的查找

// : 忽视层级,查找所有

[] 方块号 : 

  0->n :按照数组下标查找

  last() : 最后一个

  @* : 含有任意属性的标签

  @ID 含有ID属性标签

  not(@*) :不含属性标签

  @ID=‘b1’ 含有ID属性,并且值为b1标签 ;比如:@class='container'

  normalize-space(@id)='bbb' 含有id属性id属性值去掉前后空格的

  name()= : 标签等于谋个值

  start-with(“”,“”):标签,

  contains(“”,“”):当其第一个字符串参数包含有第二个字符串参数时返回true. 

    比如://div[contains(@class,'container')]/h4/button

轴:忽略属性节点和命名空间节点

  child::

  descendant 

  parent

  ancestor

  following-sibling  后兄弟,单代

  preceding-sibling  前兄弟,单代

  following  途经节点所有子代

  preceding  途经点所有父代

  descendant-or-self  

  ancestor-or-self

 

posted @ 2020-05-20 23:21  糊糊饭团  阅读(121)  评论(0编辑  收藏  举报