본문 바로가기

진리는어디에

XPath - attribute 값으로 특정 엘리먼트 찾기

동일한 엘리먼트 사이에서 특정 속성 값을 가진 엘리먼트만 찾고자 한다면 어떻게 해야 할까?
이래 저래 자료를 찾아 보다 귀찮아진 나는 자칭 xml 고수라 하는 Rhea君 에게 물어 보았다.

기대와는 달리 Rhea君의 대답은 절대 못한다 였다.
(사실..절대 라고까지는 하지 않았고...특정 케이스를 한정 지어 줬지만...어떻게든 깎아 내리고 싶은 내 맘을 알아 줬으면 좋겠다).

하.지.만 MSDN 문서(http://msdn.microsoft.com/en-us/library/ms256135.aspx)에는 분명히 attribute의 값을 이용해 특정 엘리먼트를 찾아 내는 방법이 있었다.

예를 들어 :
<element attr="name1"/>
<element attr="name2"/>
와 같은 xml 문서가 있다고 하자.

위의 element들 중에서 attr이 name1 인 경우만 찾고자 한다면 element[@attr = "name1"] 이라고 xpath를 적어 주면 된다.
(참고로 name1 옆에 따옴표는 꼭 써줘야 한다. 개인적으로 저 따옴표를 빼먹어 한참을 삽질한적이 있다)

보다 더 많은 설명은 http://msdn.microsoft.com/en-us/library/ms256135.aspx 를 참조하면 된다. 만일 링크가 깨졌다면 MSDN > Library tab > .NET Development > .NET Framework 3.5 > General Reference for the .NET > XML Standards Reference > XPath Reference > XPath Syntax > Comparison 에서 찾으면 된다(헥헥)

오늘의 교훈 :
  • Rhea君군은 거짓말쟁이!! 워우워우 베이베~!
  • 물어 보기 전에 문서를 먼저 더 자세히 찾아 보자.
 
유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!