누구나 xpath를 사용하여 노드의 위치를 얻는 방법을 알고 있습니까?
다음 xml이 있다고 가정하십시오.
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
다음 xpath 쿼리를 사용하여 세 번째 <b> 노드 (<b> tsr </ b>)를 선택할 수 있습니다.
a/b[.='tsr']
모두 훌륭하고 좋지만 다음과 같이 해당 노드의 서수 위치 를 반환 하고 싶습니다.
a/b[.='tsr']/position()
(하지만 조금 더 작동합니다!)
가능할까요?
편집 : .net 2를 사용하고 있다는 것을 언급하는 것을 잊었으므로 xpath 1.0입니다!
업데이트 : James Sulak 의 훌륭한 답변을 사용하여 끝났습니다 . 관심있는 사람들을 위해 여기에 C #으로 구현 한 것이 있습니다.
int position = doc.SelectNodes("a/b[.='tsr']/preceding-sibling::b").Count + 1;
// Check the node actually exists
if (position > 1 || doc.SelectSingleNode("a/b[.='tsr']") != null)
{
Console.WriteLine("Found at position = {0}", position);
}