XPath : 속성이 있는지 확인하는 방법은 무엇입니까?


104

다음 XML이 주어지면 속성 foo이 있는 노드를 가져 오는 XPath 쿼리를 어떻게 작성합니까 ? :

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

답변:


163

짧고 달다:

//*[@foo]

물론 좀 더 구체적인 표현을 사용해야합니다. 그러나 [@attributeName]당신은 그 속성을 가진 모든 노드를 얻습니다.


25

다음 XPath 표현식 사용

//*[boolean(@foo)]

8

및 xpath를 사용하면 다음과 같이 도움이 될 수 있습니다.

count(//*[@foo])

속성이 foo 인 노드 / 자식의 개수를 반환합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.