转换DTD';与Python的关系

转换DTD';与Python的关系,python,dtd,dtd-parsing,Python,Dtd,Dtd Parsing,我正在寻找一个库来帮助我使用Python解析和转换DTD。到目前为止,我发现的唯一一件事是,但这似乎很古老,似乎不支持DTD的序列化。Java有很多解决方案,但我更喜欢Python解决方案 编辑:通过DTD的“序列化”,我的意思是,理想情况下,我希望能够将DTD解析为某种Python结构,对该结构进行操作,然后将结果写回DTD。我不知道DTD的端到端处理器,但我很少使用DTD,所以这并不奇怪 可以解析DTD,但我不知道您可以对它们进行什么级别的访问,也不知道结果是否可以序列化。我想他们可以,但这

我正在寻找一个库来帮助我使用Python解析和转换DTD。到目前为止,我发现的唯一一件事是,但这似乎很古老,似乎不支持DTD的序列化。Java有很多解决方案,但我更喜欢Python解决方案


编辑:通过DTD的“序列化”,我的意思是,理想情况下,我希望能够将DTD解析为某种Python结构,对该结构进行操作,然后将结果写回DTD。

我不知道DTD的端到端处理器,但我很少使用DTD,所以这并不奇怪

可以解析DTD,但我不知道您可以对它们进行什么级别的访问,也不知道结果是否可以序列化。我想他们可以,但这不是事实,这在Python中是可用的,但我在这方面的经验更少。从libxml文档中可以看出,您可以访问完整的DTD

另一种可能是使用将DTD转换为XSD,然后使用常规XML处理器操作树,并将其返回给DTD。我担心这会有多大损失


在难度越来越大的情况下,如果你要为DTD语法编写一个解析器,考虑或./P>< P>我不知道DTDs的端到端处理器,但是我再也很少使用DTDs了,所以这并不奇怪。 可以解析DTD,但我不知道您可以对它们进行什么级别的访问,也不知道结果是否可以序列化。我想他们可以,但这不是事实,这在Python中是可用的,但我在这方面的经验更少。从libxml文档中可以看出,您可以访问完整的DTD

另一种可能是使用将DTD转换为XSD,然后使用常规XML处理器操作树,并将其返回给DTD。我担心这会有多大损失


在难度越来越大的情况下,如果你要为DTD语法编写一个解析器,考虑或./p>,你可能需要考虑将DTD转换成一个基于XML的格式。此时,您可以使用ElementTree或任何您喜欢的XML工具包来处理它

我对RelaxNG有很好的体验,它相当简洁明了。网站上有一个转换工具列表:

如果您更喜欢XML模式,以下是可用的:


如果您处理的是第三方文档或DTD,这可能不适合您。如果是内部的,试试看。基于XML的模式更易于使用。

< p>您可能需要考虑将DTD转换为基于XML的格式之一。此时,您可以使用ElementTree或任何您喜欢的XML工具包来处理它

我对RelaxNG有很好的体验,它相当简洁明了。网站上有一个转换工具列表:

如果您更喜欢XML模式,以下是可用的:

如果您处理的是第三方文档或DTD,这可能不适合您。如果是内部的,试试看。基于XML的模式更易于使用。

“DTD的序列化”?DTD不只是文本吗?“DTD的序列化”是什么意思?DTD不只是文本吗?“DTD的序列化”是什么意思?