2010-02-06 3 views
22

<link>type="application/rss+xml"또는type="application/atom+xml" (RSS 및 Atom 피드)을 가진 요소XPath 조건 자에 'OR'연산자가 있습니까?

  • link[@rel='alternate'][@type='application/rss+xml']이 RSS는
  • link[@rel='alternate'][@type='application/atom+xml']는 아톰이

피드 선택 피드를 선택하지만 무엇이다를 선택 XPath 표현 무엇입니까 둘 다 선택하는 단일 XPath 식?

감사합니다.

답변

46

사용 :

link[@rel='alternate'][@type='application/rss+xml' or @type='application/atom+xml'] 

http://www.w3.org/TR/xpath/#NT-OrExpr

를 참조 또한 노동 조합을 사용할 수는이

link[@rel='alternate'][@type='application/rss+xml']|link[@rel='alternate'][@type='application/atom+xml'] 

하지만 or 할 것이다 달성한다. 당신이 XPath는 2.0 공상 얻고 사용하려는 경우

12

, 그것은 더 우아 (그러나 잠재적으로 혼란 코드를 읽을 수 있습니다 누구를 따라하는) 이런 식으로 쓰기 :

link[@rel='alternate'][@type = ('application/rss+xml', 'application/atom+xml')] 

그 이유는 XPath 2.0은 '='을 재정의하여 시퀀스에 적용합니다. 즉, 위의 비교는 왼쪽 시퀀스의 항목과 오른쪽 시퀀스의 항목을 비교할 때 하나의 일치 항목이있는 경우 true를 반환합니다. 비교하려는 항목 목록이 동적 인 경우 매우 유용 할 수 있습니다.

관련 문제