xml - 用于 (x)html 的 perl xml::libxml dom 解析器的一组有用的食谱示例?

标签 xml html perl xhtml xml-libxml

<分区>

一些用于 xml 的更简单的 perl dom 解析器的作者似乎不鼓励他们使用混合内容以支持 XML::LibXML。所以我现在开始学习 XML::LibXML 并正在寻找常用的食谱示例。考虑从网络上读取 (x)html 文档并对其进行操作。 (perl cookbook 2nd edition 已经有 10 年历史了,它在这里的覆盖面相对较弱。)我想我想从以下开始:

use XML::LibXML;
my $dom = XML::LibXML->load_xml( location => "fame-1-1.html", recover => 2 );
## recover=>2 is needed to allow valid html entities

初学者可以使用的好食谱示例包括

  1. 将 $dom 转换为 perl 数据结构。 Data::Dumper($dom) 没有给我带来任何特别有趣的东西。当然,我想转换两种方式:from 和 to。

  2. 漂亮地打印输出,也许有一些控制。

  3. 将 html 净化为 xhtml。

  4. 用逻辑进行转换。 (有使用单个 dom 元素做事的很好的例子,但我认为更通用。)例如,我如何操作两个连续的 dom 元素?我有一个 XAB。如果这样连续,我想向 sup 添加一个“类”或“样式”(例如,style="width:0")。

  5. 将所有类和样式分解为一个最小的模板样式表。

  6. XML::LibXML 的其他“酷”和“简单”用途。

  7. (留待后续编辑问题以响应有用的食谱)建议:

    (a) 用递增的 id 枚举

      中的每个
    • (例如,
    • ...
    • ...)。可以用多个元素来完成

      (b) 遍历多个标签(例如,按出现顺序打印出所有 li、dl 和 dt)

感谢 sample 。

/我是

最佳答案

对于 HTML DOM 样式解析,您可以使用 Mojo::DOM

http://blogs.perl.org/users/joel_berger/2012/10/an-example-using-mojodom-for-rewriting-html.html

http://blogs.perl.org/users/tempire/2011/02/easy-dom-parsing-with-mojodom.html

Parsing HTML with Mojolicious User Agent

1: 我的 $dom = Mojo::DOM->new( $content );

2:

3:不需要

4:

#remove stylesheets
$dom->find('link')->each( sub{ $_->remove if $_->{rel} eq 'stylesheet' } );

5:有可能,但值得一个新问题

6:检查链接

例子:

Mojo::UserAgent->new->get('http://www.google.com/search?q=mojolicious')
->res->dom->find('h3.r a')
->each( sub { print shift->all_text . "\n" } );

关于xml - 用于 (x)html 的 perl xml::libxml dom 解析器的一组有用的食谱示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21820246/

相关文章:

php - 使用 PHP xmlwriter 在 xml 文件中添加多个数据

java - 如何将整数变量传递给动画?

C# XmlDocument SelectNodes 不工作

javascript - Nodejs中是否有任何像django admin一样工作的模块?

javascript - 链式 html 数字选择

perl - 我如何告诉 Module::Build 不要将 lib/perl5 子目录添加到安装路径?

xml - Scala XML 输出引号 ' "'

javascript - 有没有办法使用 javascript 将样式应用于突出显示的文本?

arrays - 如何提高我的域名统计算法的效率?

Perl Mechanize 提交按钮