Сопоставление нескольких значений 'id' с использованием RegEx в сочетании с HTML::TreeBuilder
У меня есть список URL-адресов в массиве:
http://www.site.sx/doc1.html
http://www.site.sx/doc2.html
http://www.site.sx/doc3.html
.
.
.
Давайте посмотрим содержимое первой страницы, а именно doc1.html:
<?xmlversion = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Birds</title>
</head>
<body>
<p>Some bird's feather's aren't actually blue, they're clear.</p>
<!--LOOK HERE--><p id = "abc123FACT1xyz789">There exists an insect that makes 100-decibel sounds.</p>
</body>
</html>
Теперь давайте посмотрим содержимое второй страницы, а именно doc2.html:
<?xmlversion = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cats</title>
</head>
<body>
<p>Moota goes from house to house.</p>
<!--LOOK HERE--><p id = "abc123FACT2xyz789">Falling from a higher altitude might be better than a lower one.</p>
</body>
</html>
doc3.html будет иметь то же самое abc123.....xyz789
тип шаблона для его ìd
значение, как и остальные страницы в моем массиве. Я хочу захватить текстовое содержание каждого из них. Здесь только один id
значение в каждом документе с этим конкретным шаблоном. Конечно, есть несколько id
ценности во всем документе в реальности, но - для простоты - мы можем игнорировать это.
БОЛЬШАЯ КАРТИНА: Я хочу поставить каждый матч так:
$tree->look_down( _tag => 'p' , id => "abc123.*xyz789")->as_text; # NOT SURE HOW TO MAKE AN ARRAY OF MATCHES...
1 ответ
my $match = $tree->look_down( _tag => 'p' , id => qr{abc123.*xyz789} )->as_text;
Это получит то, что я после.