Мне нужно выбрать все дочерние узлы (тег опции) из этого 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) и текст VÅ¡etci.
Поэтому я пытаюсь получить первый доступ к выбору по идентификатору:
Я пробую это:
var selectNode = htmlDoc.GetElementbyId("onoffaci"); var nodes = selectNode.SelectNodes("option::*");
но я получаю ошибку, что xpath имеет недопустимый токен. Что такое плохо?
Очевидной проблемой является использование
option::*
option::*
означает: все узлы в оси опций. Однако нет «оси опций в XPath»,
Вы хотите :
option
Это выбирает все элементы 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()
Это выбирает все value
атрибуты всех option
элементов , которые являются потомками всех select
элементов в документе XML , которые имеют id
атрибут со значением 'onoffaci'
, а также все текстовых узлы всех option
элементов , которые являются потомками всех select
элементов в документе XML которые имеют атрибут id
со значением 'onoffaci'
.
Вам нужно будет повторять результаты, чтобы получить значение @value
и text()
для каждого элемента option
.
Или:
//select[@id='onoffaci']/option[1]/@value
|
//select[@id='onoffaci']/option[1]/text()
Здесь используется наблюдение , что option
элемент вас интересует является первым option
потомком своего родителя â €»теперь это выбирает только value
атрибута и текстовые узлы разыскиваемого option
элемента.