HTML :: ELEMENT не находит все элементы - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть этот фрагмент HTML:

<li class="result-row" data="2">
<a href="https://localhost/1.html" class="result-image gallery empty"></a>

<p class="result-info">
    <span class="icon icon-star" role="button">
        <span class="screen-reader-text">favorite this post</span>
    </span>

    <time class="result-date" datetime="2018-12-04 09:21" title="Tue 04 Dec 09:21:50 AM">Dec  4</time>

<a href="https://localhost/1.html" data="2" class="result-title hdrlnk">Link Text</a>

и этот код Perl (не производственный, поэтому комментарии по качеству не нужны)

my $root = $tree->elementify();
my @rows = $root->look_down('class', 'result-row');

my $item = $rows[0];
say $item->dump;
my $date = $item->look_down('class', 'result-date');
say $date;
my $title = $item->look_down('class', 'result-title hdrlnk');

Все выходные данные, как я ожидал, кроме$date не определено.

Когда я смотрю на $item->dump, кажется, что элемент времени не отображается на выходе.Вот фрагмент вывода из $item->dump, где я ожидал бы увидеть элемент <time...>.Все, что он показывает, это текст из элемента времени.

<li class="result-row" data="2"> @0.1.9.3.2.0
<a class="result-image gallery empty" href="https://localhost/1.html"> @0.1.9.3.2.0.0
<p class="result-info"> @0.1.9.3.2.0.1
<span class="icon icon-star" role="button"> @0.1.9.3.2.0.1.0
" "
<span class="screen-reader-text"> @0.1.9.3.2.0.1.0.1
"favorite this post"
" "
" Dec 4 "
<a class="result-title hdrlnk" data="2" href="https://localhost/1.html"> @0.1.9.3.2.0.1
.2
"Link Text..."
" "
...

Я раньше не использовал HTML :: Element .Я rtfmed и не увидел каких-либо исключений тегов, и я провел поиск кода пакета для тегов белых / черных списков (что не имеет смысла, но и не пропуская тег времени).

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

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

1 Ответ

0 голосов
/ 05 декабря 2018

HTML :: TreeBuilder не поддерживает теги HTML5 .Рассмотрим Mojo :: DOM как альтернативу, которая соответствует живому стандарту HTML.Я не могу показать, как весь ваш код выглядел бы с Mojo :: DOM, так как вы показывали только фрагмент, но эквивалент look_down для Mojo :: DOM: find (возвращает массив Mojo :: Collectionref) или at (возвращает первый найденный элемент или undef), оба принимают селектор CSS .

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