Использование next_sibling() в PHP Simple HTML DOM Library?

У меня есть таблица данных, я хочу захватить текст внутри элемента, который сразу следует за элементом, который имеет метку внутри с атрибутом заголовка «метка». Смотрите таблицу здесь:

<table>
<tr>
    <th><label title="Country">Country</label></th>
    <td>I want to capture this text</td>
</tr>
<tr>
    <th><label title="Other">Heading I don't need</label></th>
    <td>Cell I don't Need</td>
</tr>
</table>

Единственная идентифицируемая характеристика, которую я могу найти, заключается в том, что td предшествует th, внутри которого есть метка с уникальным атрибутом title.

Во-первых, я попробовал без метки, так как знаю, что это будет первый результат для:

$found = $html->find('tr th')->next_sibling();
echo($found[0]);

Но это не похоже на правильное использование следующего брата. Может кто-нибудь сказать мне, как правильно использовать его, чтобы получить элемент, следующий за элементом? Еще лучше, если есть способ включить этот ярлык в его уникальный атрибут title.


person hhwhy    schedule 22.11.2011    source источник
comment
возможный дубликат Получить текст из следующего тега   -  person Gordon    schedule 23.11.2011


Ответы (1)


Может кто-нибудь сказать мне, как правильно использовать его, чтобы получить элемент, следующий за элементом?

Следующий брат не возвращает свое содержимое. Вместо этого вы должны использовать first_child().

Еще лучше, если есть способ включить этот ярлык в его уникальный атрибут title.

Что вы имеете в виду под словом «включить»? Вы можете использовать find() для получения содержимого каждой метки независимо от того, имеет она заголовок или нет. Если вы хотите получить содержимое метки с указанным заголовком, вы должны указать свой заголовок в find(). Я предлагаю вам прочитать руководство: http://simplehtmldom.sourceforge.net/manual.htm

person animalnots    schedule 09.10.2012
comment
Не забудьте прокомментировать свой код, как он работает, как он решает вопрос ОП? - person Yaroslav; 09.10.2012
comment
Я вижу, вы уже обновили свой ответ. Это не имеет ничего общего с вопросом, заданным ОП, он тесно связан с философией SO и с тем, как писать хорошие ответы. Проверьте здесь и здесь для более подробной информации. И последнее, но не менее важное: блог Джона Скита о как ответить на технический вопрос - person Yaroslav; 09.10.2012
comment
Этот ответ показывает фундаментальное непонимание вопроса ОП. Предполагается, что next_sibling() или nextSibling() могут получить следующий элемент в строке, например: ‹h2›TITLE‹/h2›‹h3›Second Title‹/h3› Если вы используете -›find('h2') , а затем -›next_sibling() Вы должны перейти к ‹h3›, но Simple HTML DOM возвращает только ошибку. - person j_allen_morris; 01.02.2019