html - 从 Perl 中的富文本编辑器解析 HTML 的最佳方法是什么?

标签 html perl module tidy rich-text-editor

是否有一个 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/

相关文章:

html - 多个背景按顺序重复

html - 显示 : table-cell; adding extra space on left of text

javascript - 如何以特殊分割方式重复背景图

Ubuntu 上的 Perl Ora2Pg

正则反编译器

docker - `make install`在Docker内部失败

mysql - 如何从类中调用模块?

javascript - 如何获取 Bootstrap 选择选择器点击事件

C# 等效于 VB 'module'

module - 在 OCaml 顶层使用 Str 模块?