Как я могу получить следующий немедленный тег с HTML :: Tokeparser? - PullRequest
0 голосов
/ 30 сентября 2010

Я пытаюсь получить теги, которые появляются сразу после определенного тега div.Например, у меня есть HTML-код

<div id="example">
     <h2>Example</h2>
     <p>Hello !World</p>
</div>

Я делаю следующее,

while ( $tag = $stream->get_tag('div') ) {
    if( $tag->[1]{id} eq 'Example' ) {
        $tag = $stream->get_tag;
        $tag = $stream->get_tag;
        if ( $tag->[0] eq 'div' ) {
        ...
        }
    }
}

Но это выдает ошибку Can't use string ("</h2>") as a HASH ref while "strict refs" in use

Работает нормально, еслиЯ говорю $tag = $stream->get_tag('h2'); $tag = $stream->get_tag('p');

Но у меня этого не может быть, потому что мне нужно получить сразу два тега и проверить, являются ли они тем, кем я их ожидаю.

1 Ответ

1 голос
/ 30 сентября 2010

Было бы проще сказать, если вы опубликовали работающую примерную программу, но, похоже, проблема в том, что вы не поняли, что get_tag возвращает оба начальных и конечных тега. Конечные теги не имеют атрибутов. Начальные теги возвращаются как [$tag, $attr, $attrseq, $text], а конечные теги возвращаются как ["/$tag", $text].

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