如果我有表格的HTML
<ol>
<li>Cheeses
<ol>
<li>Red Leicester</li>
<li>Cheddar</li>
</ol>
<li>Wines
<ol>
<li>Burgundy</li>
<li>Beaujolais</li>
</ol>
</ol>
我想把它解析成类似
的结构{"Cheeses":["Red Leicester", "Cheddar"], "Wines":["Burgundy", "Beaujolais"]}
有很多&#34;教程&#34;关于如何使用HTML :: TreeBuilder或Mojo :: DOM等模块来解析HTML,但它们似乎总是依赖于使用&#34; id =&#34;或&#34; class =&#34;标签。我要解析的HTML没有任何ID标记或其他属性。我怎么能这样做?
答案 0 :(得分:1)
我只有Mojo :: DOM的经验,不可否认,您可能会找到一个更好的模块,用于将XML转换为数据结构。如果您正在使用Mojo :: DOM,您可能希望查看Mojo :: DOM对象下的树结构:
#!/usr/bin/env perl
use strict;
use warnings;
use Mojo::DOM;
use Data::Dumper;
my $dom = Mojo::DOM->new(<<'END');
<ol>
<li>Cheeses
<ol>
<li>Red Leicester</li>
<li>Cheddar</li>
</ol>
<li>Wines
<ol>
<li>Burgundy</li>
<li>Beaujolais</li>
</ol>
</ol>
END
print Dumper $dom->tree;
通过一点点按摩,你可以将它变成你想要的形式。也许某人有一个模块可以直接从HTML(可能实际上是XML)到结构。