xpath search/seibling selection
-
01-10-2019 - |
سؤال
قد يكون هذا السؤال محددًا بعض الشيء ، لكن برنامج اختبار IM يستخدم XPath للعثور على البيانات التي أحتاجها في HTML. هذه القطعة من HTML (الموجودة هنا) هي ما أحاول تحليله.
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="textSm" align="right">1. </td> <!-- Location of the number is here -->
<td align="left" nowrap>
<a href="/stats/individual_stats_player.jsp?c_id=sf&playerID=467055" class="textSm">P Sandoval</a> <!-- Player location is here of the number is here -->
</td>
</tr>
</table>
هدفي هو العثور على اسم الشخص باستخدام الرقم الذي يتوافق معه للعثور عليه. هذا يتطلب مني العثور على عقدة بواسطة النص المحدد الموجود في "td class="textSm" align="right">1. </td>
"ثم ابحث عن شقيق تلك العقدة"<td align="left" nowrap>
"ثم ابحث عن طفل ذلك الأخوة"<a href="/stats/individual_stats_player.jsp?c_id=sf&playerID=467055" class="textSm">P Sandoval</a>
"للحصول على النتيجة المرجوة. كنت أتساءل عن نوع الاستعلام الذي يمكنني استخدامه للعثور على هذا. أي مساعدة موضع تقدير كبير.
المحلول
يستخدم:
table/tr/td[starts-with(., '1.')]/following-sibling::td/a
هذا يفترض أن السياق (العقدة الحالية) التي يتم تقييم تعبير XPath أعلاه ، هو الوالد table
.
نصائح أخرى
//tr[td = "1"]/td[2]/a
لجميع TRS التي لديها TD تساوي "1" ، أعط من الطفل الثاني td العنصر.