@dmirogin

Как с помощью регулярных выражений вычленить тег table, но в котором еще есть теги table ?

Есть строка, содержащая часть html-страницы, в которой есть таблица.
Но в этой таблице есть еще таблицы.
Примерная структура :
<table>
     <td>
         <table>
         </table>
    </td>
</table

Как мне получить содержимое таблицы внешней ?
Пытаюсь парсить таблицы с помощью регулярок, но получаю в данном случае
<table>
     <td>
         <table>
         </table>
  • Вопрос задан
  • 2563 просмотра
Решения вопроса 1
BoShurik
@BoShurik
Symfony developer
Регулярка - не лучшее решение, в данном случае.
stackoverflow.com/a/1732454

php.net/manual/ru/class.domdocument.php
code.google.com/p/phpquery
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@akdes
hardcore:
ищите все элементы , ставьте марки на них в цепочку, считаете их, т.е. если table то +1 если /table то -1
при первом table и последним /table не считаете.
после всего имеете первый и закрывающий его тэг

или:
через ява скрипт, как предложил Alex Db
Ответ написан
Комментировать
@ment-ru
Понятно, что ваша регулярка находит первый закрывающий /table и возвращает результат. Но если у вас во всем коде соблюдены отступы, то можно сделать упор на них. Т.е. в данном случае вам достаточно привязать ваш /table к началу строки. Что-то вроде ^</table>. В иных случаях может пригодится фиксировать количество "табов" от начала строки.
Ответ написан
Комментировать
alexdb
@alexdb
А где потерялся?

Используйте в поиске дочерние и родительские элементы:

$( "table:parent" ).html();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы