가까운 요소를 사용하여 XML 노드를 선택하는 방법
-
16-09-2019 - |
문제
XPath와 HTML 민첩성 팩을 사용하여 destination
텍스트 사용 color:#ff00ff
.
내 HTML은 다음과 같습니다.
<table>
<tr style="color:#ff00ff">
<td></td>
</tr>
<tr>
<td>destination</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>not destination</td>
</tr>
</table>
해결책
/table/tr[@style = "color:#ff00ff"]/following-sibling::tr[1]/td[1]/text()
선택합니다 <tr>
그건 가지고 있습니다 style="color:#ff00ff"
, 그리고 거기에서 가면서, 첫 번째 텍스트 <td>
첫 번째 자녀 <tr>
.
추가 안전을 위해 사용할 수 있습니다.
tr[translate(@style, ' ', '') = "color:#ff00ff"]
이렇게하면 속성 값에서 모든 공간이 제거되므로 HTML 소스와는 조금 더 독립적입니다.
다른 팁
jQuery를 사용하면 다음과 같이 보일 수 있습니다.
$('tr[style*="color:#ff00ff"]').next('tr').children().text();
그러나 이것은 정확한 문서 구조와 스타일 정의에 크게 의존합니다. 문자열 "색상 :#ff00ff"(정확히, 공백 없음 등)가 포함 된 스타일이있는 TR을 찾을 수 있습니다. 그 행에서 다음 형제 행을 선택하고 직접적인 어린이들로부터 텍스트 내용을 얻습니다. 귀하의 경우, 이것은 단일 열 요소입니다.
제휴하지 않습니다 StackOverflow