代码之家  ›  专栏  ›  技术社区  ›  Byron Whitlock

xpath:如何检查属性是否存在?

  •  88
  • Byron Whitlock  · 技术社区  · 15 年前

    给定以下XML,如何编写一个xpath查询来将属性所在的节点 foo 存在?:

    <node1>
      <node2>
        <node3 foo='bar'></node3>
        <node3></node3>
        <node3 bar='foo'></node3>
        <node3 foo='foobar'></node3>
      </node2>
    </node1>
    
    3 回复  |  直到 15 年前
        1
  •  140
  •   ulidtko    11 年前

    短而甜:

    //*[@foo]
    

    当然,您应该使用更具体的表达式。但是有 [@attributeName] 您将获得具有该属性的所有节点。

        2
  •  20
  •   ulidtko    11 年前

    使用下列xpath表达式

    //*[boolean(@foo)]
    
        3
  •  8
  •   ulidtko    11 年前

    如果使用和xpath,这可能会帮助您:

    count(//*[@foo])
    

    它将返回具有foo属性的节点/子节点的计数