我正在考虑使用 Perl 从 DTD 中提取所有内容,但我不确定哪种方法是最好的方法。我知道有用于处理 XML 的模块,但我不确定是否有用于 SGML 的此类工作的模块,或者我是否应该尝试为这项工作创建正则表达式?
我是 SGML 和 Perl 的新手,除了非常简单的模式匹配外,对正则表达式没有太多经验。
您在这里有 2 个选项:
使用我在(远程!)过去使用过的旧perlSGML发行版。这是 perl 它仍然应该在现代 perl 上运行,
使用 将您的 SGML 转换为 XML osx
,它是 openSP 的一部分,至少可用于 Debian/Ubuntu(该软件包称为opensp
)和最有可能的其他平台,然后使用 XML 工具,如 XML::LibXML 或 XML::Twig
现在有比 SGML 工具多得多的 XML 工具,但是您当然可能会丢失一些信息,因为 XML 中的 DTD 比 SGML 中的稍微简单一些