我正在寻找一个库来帮助我使用 Python 解析和转换 DTD。到目前为止,我发现的唯一东西是xmlproc,但这似乎很古老,而且似乎不支持 DTD 的序列化。Java有这个,但我更喜欢 Python 解决方案。
编辑:通过 DTD 的“序列化”,我的意思是理想情况下,我希望能够将 DTD 解析为某种 Python 结构,对该结构进行操作,然后将结果写回 DTD。
您可能需要考虑将您的 DTD 转换为一种基于 XML 的格式。此时,您可以使用 ElementTree 或您喜欢的任何 XML 工具包来处理它。
我对 RelaxNG 有很好的体验,它相当简洁明了。其网站上有一个转换工具列表:http ://relaxng.org/#conversion
如果您更喜欢 XML Schema,以下是可用的:http ://www.w3.org/XML/Schema
如果您正在处理第三方文档或 DTD,这可能不适合您。如果是在内部,请试一试。基于 XML 的模式使用起来更愉快。