проблема с доступом к элементу с PHP Дом - PullRequest
2 голосов
/ 14 марта 2012

Я пытаюсь загрузить php-файл, содержащий в основном HTML-код, в DOMdocument, чтобы я мог получить доступ к значениям некоторых форм ввода на странице. Вот код, который я использую:

$dom = new DOMDocument();
$html = file_get_contents('./drafter.php');

$dom->load($html);  

$rw = $dom->getElementById('rW')->nodeValue;

вот HTML-код rW из файла drafter.php:

<input type="text" id="rW" size="3" maxlength="4"value="1100"/>

Что я делаю не так? Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

nodeValue содержит внутреннее значение тега, например text внутри <p>text</p>. Вам нужен атрибут value:

 $rw = $dom->getElementById('rW')->getAttribute("value");

Обратите внимание, что если вы ожидаете, что drafter.php будет выполняться как PHP к file_get_contents(), это не произойдет. Его содержимое будет просто прочитано в виде простого текстового файла. Если вам нужен файл, выполненный как PHP, вы можете включить его и перехватить содержимое с помощью буферизации вывода:

ob_start();
include("../drafter.php");
$html = ob_get_contents();
ob_end_clean();

// Then load it into the DOM
$dom->load($html);
1 голос
/ 15 марта 2012

Я рекомендую использовать эту php-библиотеку под названием simple html dom :). Поддерживает селектор "jquery style"

Решение вашей проблемы:

$html = str_get_html('<input type="text" id="rW" size="3" maxlength="4"value="1100"/>');
$value = $html->find("#rw")->value;

http://simplehtmldom.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...