PHP DOM — Получить все значения параметра по имени

Мне нужно получить значения «option» с сайта. Но есть более одного «выбора». Как получить значения «option» по значению «Select name». (получить все значения параметра, выбрав name = ctl02 $ dlOgretimYillari)

<select name="ctl02$dlOgretimYillari" onchange="javascript:setTimeout('__doPostBack(\'ctl02$dlOgretimYillari\',\'\')', 0)" id="ctl02_dlOgretimYillari" class="NormalBlack">
<option selected="selected" value="-40">2016-2017</option>

</select>

Мой код:

$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$options_value = array();
$options_name = array();
$options_selected = array();
foreach($dom->getElementsByTagName('option') as $option) {
array_push($options_value, $option->getAttribute('value'));
array_push($options_selected, $option->getAttribute('selected'));
array_push($options_name, $option->nodeValue);
}

3

Решение

получить все значения параметра, выбрав name = ctl02 $ dlOgretimYillari

Решение с использованием DOMXPath :: запрос метод:

$content = '<select name="ctl02$dlOgretimYillari" onchange="javascript:setTimeout(\'__doPostBack(\'ctl02$dlOgretimYillari\',\'\')\', 0)" id="ctl02_dlOgretimYillari" class="NormalBlack">           <option selected="selected" value="-40">2016-2017</option>        </select>';

$doc = new DOMDocument();
libxml_use_internal_errors();
$doc->loadXML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8'));

$xpath = new DOMXPath($doc);
$nodes = $xpath->query("//select[@name='ctl02\$dlOgretimYillari']/option/@value");

// outputting first option value
print_r($nodes->item(0)->nodeValue);

Выход:

-40

Для дополнительного условия: Как я могу получить значение текста опции?

...
$nodes = $xpath->query("//select[@name='ctl02\$dlOgretimYillari']/option/text()");
...
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector