1
У меня есть ниже HTML текст, хранящийся в переменной $ domTextРазбор и извлечения данных из HTML текста
<TR class="tableclass">
<TD>Veteran Job Information</TD>
<TD>9.00</TD>
<TD>1.2</TD>
<TD><INPUT type = "text" name = "notes"></TD>
</TR>
Я хочу, чтобы проверить, если содержание текста в первом (Здесь «Ветеран Работа ...») равна «Benefit Job», тогда необходимо сохранить значения во втором и третьем тегах (здесь 9.00 и 1.2) для переменной PHP.
Ниже я пытаюсь это сделать, но я получаю ошибки, и мой код не работает вообще. "Недействительный аргумент для Еогеаспа()"
$dom_ChangeResults = new DOMDocument();
$dom_ChangeResults->loadHTML($domText); //Load the current changes as HTML String
$dom_TableTags = $dom_ChangeResults->getElementsByTagName("TR"); //Check table data tags for Full time to PartTime Change
$rows = $dom_TableTags->item(0)->getElementsByTagName('TD');
/*** loop over the table rows ***/
foreach ($rows as $row)
{
/*** get each column by tag name ***/
$cols = $row->getElementsByTagName('td');
/*** echo the values ***/
echo $cols->item(0)->nodeValue.'<br />';
echo $cols->item(1)->nodeValue.'<br />';
echo $cols->item(2)->nodeValue;
echo '<hr />';
}
Из конвенции, пожалуйста, не капитализировать свои '' <*> тегов, то есть ''
Спасибо за предложения. Так оно и есть в проекте. Пока что я должен использовать, так как теперь он будет фиксировать их в отдельных рабочих заказах. –
Не беспокойтесь. Это ничего не влияет на простой HTML, но лучше всего следовать обычной практике: P Также, что происходит, когда вы 'var_dump ($ rows)'? –
ответ
Не используйте заглавные тег с PHP DOMElement. Не знаю, является ли это всем кодом, который вы нам предоставили, но капитализация в скрипте PHP является основной проблемой,
getElementsByTagName('TD')
вернет пустой список, гдеgetElementsByTagName('td')
вернет заполненный список.не это должно быть (или у вас есть только одна строка?):
хорошо here работает образец кода
EDIT
Для работа с данными с одним элементом
<tr>
:источник
2014-12-24 19:28:27
Вы правы. Он возвращает список EMPTY. Но вы изменили мой HTML-файл. У меня нет тега TABLE в моем HTML-тексте. Можете ли вы изменить свой код, чтобы использовать текст HTML, как я писал на вопрос? ЧТОБЫ БОЛЬШЕ –
@RealCoder см. Мое редактирование –
Это сработало Спасибо. Я не знал, что капитализация имеет значение в PHP. Новое, что я узнал сегодня. –
Вы должны перебирать ваши
<tr>
элементов, не<td>
:источник
2014-12-24 19:28:05
Если я делаю выше, $ rows на третьей строке будет содержать Nothing. SO n вообще не входя в петлю FOREACH. –
@RealCoder, '$ rows' будет содержать ваш единственный элемент'
Это тоже работает.Спасибо за ваш ответ. –
Смежные вопросы