이 html에서 모든 자식 노드 (옵션 태그)를 선택해야합니다.
<select name="akt-miest" id="onoffaci">
<option value="a_0">Všetci</option>
<option value="a_1">Iba prihlásenÃ</option>
<option value="a_5" selected="selected">Teraz na Pokeci</option>
<optgroup label="Hlavné miestnosti">
<option value="m_13"> Bez záväzkov</option>
<option value="m_9"> Do pohody</option>
<option value="m_39"> Dámsky klub</option>
</optgroup>
나는 HTML 민첩성 팩을 사용한다.
나는 이것을 시도한다 :
var selectNode = htmlDoc.GetElementbyId("onoffaci");
var nodes = selectNode.SelectNodes("option::*");
하지만 xpath에 유효하지 않은 토큰이 있다는 오류가 발생합니다. 나쁜 무엇입니까?
예 :
<option value="**a_0**">**Všetci**</option>
나는 가치 (a_0)와 텍스트를 얻을 필요가있다.
그래서 나는 이드 (Id)가 선택한 첫 번째 접근을 시도한다.
나는 이것을 시도한다 :
var selectNode = htmlDoc.GetElementbyId("onoffaci"); var nodes = selectNode.SelectNodes("option::*");
하지만 xpath에 유효하지 않은 토큰이 있다는 오류가 발생합니다. 나쁜 무엇입니까?
분명한 문제는
option::*
option::*
는 "옵션"축의 모든 노드를 의미합니다. 그러나 XPath에는 "옵션 축"이 없습니다.
당신이 원하는 :
option
그러면 현재 노드의 하위 노드 인 모든 option
요소가 선택됩니다.
이것을 하나의 XPath 표현식에 작성 하고 getElementbyId()
호출을 생략 할 수 있습니다 .
//select[@id='onoffaci']/option
For example:
<option value="**a_0**">**Všetci**</option>
I need get value (a_0) and text Všetci
사용 :
//select[@id='onoffaci']/option/@value
|
//select[@id='onoffaci']/option/text()
그러면 값이 'onoffaci'
인 id
속성과 XML 문서의 모든 select
요소의 하위 인 모든 option
요소의 모든 텍스트 노드가있는 XML 문서의 모든 select
요소의 하위 요소 인 모든 option
요소의 모든 value
속성이 선택됩니다 'onoffaci'
값을 가진 id
속성을 가지고 있습니다.
각 option
요소에 대해 @value
및 text()
를 얻으려면 결과를 반복해야합니다.
또는:
//select[@id='onoffaci']/option[1]/@value
|
//select[@id='onoffaci']/option[1]/text()
여기서 관심있는 option
요소가 상위 요소의 첫 번째 option
하위 요소라는 관찰을 사용합니다. 이제 원하는 value
요소와 원하는 option
요소의 텍스트 노드 만 선택합니다.