2012-02-22 57 views
0

我正在研究从使用Perl的DTD中提取所有内容,但我不确定哪个是最好的方式去实现它。我知道有用于处理XML的模块,但我不确定是否有任何使用SGML的此类工作,或者我是否应该尝试为此工作创建正则表达式?如何使用Perl从SGML DTD中提取文本内容?

我是SGML和Perl的新手,除了非常简单的模式匹配外,还没有太多的正则表达经验。

+2

提供一些示例输入和您的预期输出。 – mob 2012-02-23 00:18:39

+0

请阅读[常见问题]和[问]以了解如何在此正确提问。 – 2012-02-23 00:27:05

+2

这里有个问题,它是“我应该用正则表达式解析xml”。但既然这是惯用的,当然你不应该,在这个网站上已经回答了5,678次,是降价。 – sweaver2112 2012-02-23 04:23:02

回答

2

你有2个选择这里:

  • 使用,我在(遥控!)过去曾经用过的旧perlSGML分布。这是Perl的应该还是在现代的Perl运行,

  • 转换您的SGML使用osx XML,这是OpenSP中的一部分,可供至少于Debian/Ubuntu(该包被称为opensp),并极有可能其他平台,然后使用XML工具,如XML ::的libxml,或XML ::嫩枝

有很多更多的XML工具比SGML工具,这些天,当然你可能会失去一些信息,由于DTD是XML稍微简单比在SGML