是否有一个 Perl 模块可以接受错误的 HTML(例如从 Microsoft Word 复制的内容)并将其解析为格式良好的 HTML?我查看了 HTML::Tidy,但它得到了 horrible reviews on CPAN .我们有一个自定义遗留模块,它基本上是 tidy 命令行版本的包装器(这似乎与 HTML::Tidy 差不多),但是它将文件写入磁盘并将它们读回,这可能是一个很大的性能惩罚。当然,有了 Perl 强大的文本解析能力,还有更好的方法来做这件事吗?
最佳答案
两件事:
1) 确实没有tidy 的替代品| ,因为它适合大多数人。命令行工具是否存在某些不适合您的行为?也许如果您举了一个例子说明为什么它不合格,我们可以更好地理解这个问题。
2) 关于性能,您可以考虑修改包装器以在整洁时调用 open2
以避免磁盘往返:
use IPC::Open2;
my $pid = open2(\*FROM_TIDY, \*TO_TIDY, '/usr/bin/tidy')
or die "couldn't open";
# give tidy our html and close the handle to tell it we're done
print(TO_TIDY $html_string);
close(TO_TIDY);
# read in the tidy html
while (<FROM_TIDY>) {
print;
}
close(FROM_TIDY);
关于html - 从 Perl 中的富文本编辑器解析 HTML 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250914/