반응형
XPath를 사용하여 깊이의 자식 요소를 어떻게 선택합니까?
이것이 (간체) 있다고 가정합니다.
<form id="myform">
<!-- some input fields -->
<input type="submit" value="proceed"/>
</form>
그런 다음 XPath로 제출 버튼을 선택할 수 있습니다 //form[@id='myform']/input[@type='submit']
. 큰.
그러나 내 템플릿이 변경 될 수 있으며 제출 버튼이있는 깊이를 유연하게 만들고 싶습니다. 다음과 같이 테이블에 넣을 수 있습니다.
<form id="myform">
<!-- some input fields -->
<table><tr><td>
<input type="submit" value="proceed"/>
</td></tr></table>
</form>
나는 손자 인 요소를 선택할 수 있다는 것을 알고 있지만, 어떤 깊이의 손자 손녀 ...- 자녀를 선택할 수는 없습니다. 예 :
//form[@id='myform']/*/input[@type='submit']
더 이상 깊이가 아닌 손자 만 선택합니다.//form[@id='myform']/*/*/input[@type='submit']
더 이상 또는 더 적은 깊이가 아닌 손자 손녀 만 선택합니다.//form[@id='myform']/**/input[@type='submit']
유효하지 않습니다.
그렇다면 요소 ID를 사용하지 않고 어떻게이 제출 버튼을 안정적으로 선택합니까?
거의 완료되었습니다. 간단히 사용 :
//form[@id='myform']//input[@type='submit']
//
바로 가기는 식 내에서 사용할 수 있습니다.
XmlDocument 및 XmlNode를 사용하는 경우.
말하다:
XmlNode f = root.SelectSingleNode("//form[@id='myform']");
사용하다:
XmlNode s = f.SelectSingleNode(".//input[@type='submit']");
사용하는 도구에 따라 다릅니다. 그러나 .//는 참조 노드에서 모든 자식, 깊이를 선택합니다.
//form/descendant::input[@type='submit']
또한 CSS 선택기로 할 수 있습니다.
form#myform input[type='submit']
css elector에서 요소 사이의 공백은 상위 양식의 모든 깊이에서 해당 요소를 검색하는 것을 의미합니다. # myform 요소
참고 URL : https://stackoverflow.com/questions/16016521/how-do-i-select-child-elements-of-any-depth-using-xpath
반응형
'program tip' 카테고리의 다른 글
읽기 라인 루프 동안 쉘 스크립트가 첫 번째 라인 이후에 중지 (0) | 2020.09.14 |
---|---|
Clang 최적화 수준 (0) | 2020.09.14 |
Base64 데이터를 구문 분석하거나 유효성을 검사하는 RegEx (0) | 2020.09.14 |
Sqlite의 앱 내 데이터베이스 마이그레이션 모범 사례 (0) | 2020.09.14 |
자바 : 차이점은 무엇입니까 (0) | 2020.09.14 |