Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как правильно написать такие регулярки?

Всем привет!
Как писать регулярки для строки со словами, числами и спец.символами разобрался, но тут понадобилось вычленить определенные div внутри других div и тут я застрял уже на 3 часа, помогите уважаемые! =)

DOM над которой работаю:
<div class="container">
        <div class="catalog-list">
            <div class="sub">
                <div class="item"></div>
            </div>
            <div class="item"></div>
            <div class="item"></div>
            <div class="item" data-type="2"></div>
        </div>
    </div>


Задача:
  1. Достать все, что внутри <div class="catalog-list">.
  2. Достать <div class="item"></div> , который находится внутри <div class="sub">.


Заранее спасибо!

UPD:
Может кто вкурсе, как правильно:
  1. Достать все, что после A.
  2. Достать все, что между А и B.


Еще раз спасибо! =)
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
miraage
@miraage
Старый прогер
Ну ребят, вы чего.

<?php

$data = <<<DOM
<div class="container">
        <div class="catalog-list">
            <div class="sub">
                <div class="item"></div>
            </div>
            <div class="item"></div>
            <div class="item"></div>
            <div class="item" data-type="2"></div>
        </div>
    </div>
DOM;

$xml = new SimpleXMLElement($data);

$catalogListNodes = $xml->xpath('//*[@class="catalog-list"]/*');
$itemInSubNodes = $xml->xpath('//*[@class="sub"]/*[@class="item"]');
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В общем случае регулярные выражения не предназначены для разбора вложенных конструкций. Воспользуйтесь, например Simple DOM HTML Parser.
Ответ написан
@CreatureMyst
У Symfony Components есть замечательная вещь DomCrawler. Рекомендую.
Ответ написан
Ваш ответ на вопрос

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

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