用纯C语言编写的SGML解析器

3
我正在寻找一款用纯C语言编写的开源SGML解析器。需要用它来解析真正的SGML,而不是格式错误的内容。
有什么好的建议吗?

纯属好奇,今天还有谁在使用 SGML (而非 XML)吗? - bortzmeyer
使用SGML的公司类型可能都在使用并且负担得起Omnimark来进行他们的SGML处理。 - Van Gale
金融机构(OFX)仍然使用SGML。 - Adam Ernst
(OFX 1,也就是说;版本2使用XML。) - Adam Ernst
2
波音公司的技术文档 - 以太字节的内容 - 使用SGML格式。美国国防部一直是其重度用户,因此您可以在军工复合体中找到SGML的身影。 - arayq2
2个回答

5

有一个叫做OpenSP的东西,它是OpenJade项目的一部分,但是它是用C++实现的。对于您的需求可能足够接近了吗?


2
SGML是非常复杂的东西,而且有很少的库可用。OpenSP是一个不错的选择。 - bortzmeyer
1
真的。编写完整的SGML解析器并非普通人所能做到的。ISO 8879(SGML标准)中有很多古怪的东西;詹姆斯·克拉克(James Clark)在SP(现在是OpenSP)中正确处理了这么多,这是对他技能的赞誉。 - arayq2

1

我希望能找到有直接经验的人,但我想 SGML 似乎不再那么常见了 :-)谢谢,我认为第一个听起来是最好的选择。 - Adam Ernst
W3C的“SGML解析器”实际上并不是真正的解析器。它是为原始WWW库(别问,早已过时)开发的,只处理SGML语法的严格受限子集 - 基本上是在早期解析HTML所认为“必要”的部分。 - arayq2
SGMLS是由詹姆斯·克拉克(James Clark)从名为ARC-SGML Parsing Materials的东西中开发出来的真正的SGML解析器。随后(1994年),他重新用C++从头编写了它,称之为nsgmls(现在是一个开源项目)。还有其他用C语言编写的SGML解析器,例如YASP和YAO,但很难找到。 - arayq2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接