0

我有一些想要在 python 中使用 lxml 方法解析的 XML。解析完元素后,我希望能够比较一些结构化对象(寻找增量)。

我需要解析大约 50 个 XML 文件,并且 XML 中的数据采用“不均匀”形式(我不确定正确的名称是什么)。

简化示例 XML:

<ID 1>
 <parameter A>
 <parameter B>
</ID 1>
<ID 2>
 <parameter A>
 <parameter B>
 <parameter C> 
</ID 2>
<ID 3>
 <parameter A>
</ID 3>

我将如何创建一个合适的数据库(mySQL?)结构,我可以使用它通过 ID 隔离每个对象,并比较每个参数元素。

我不确定这是否有意义——我不太熟悉正确的术语。

实际的源 xml 是此处列出的所有文件:http: //www.nationalarchives.gov.uk/aboutapps/pronom/droid-signature-files.htm

这些文件是过去几年更新的相同结构的版本。我不需要数据库中的所有 XML 元素,只需要一个子集,从版本号、发布日期开始,然后是两个主要部分中的各个 ID 和字节模式。

将它推入 mysql 可能不是最好的方法,但我想如果我这样做了,我会使用 python/html 前端来组合一个搜索/比较工具。

4

1 回答 1

1

在您的问题中,我的关键词是:“我不需要数据库中的所有 XML 元素,只需要一个子集”

鉴于您可以预先知道要比较的子集的所有元素,我建议使用一个表,其中每个数据元素都有一个列。这应该可以更轻松地处理您以后对数据的报告要求。

另一种按行存储元素的方法通常被认为是一种反模式,并且会使报告和比较变得更加困难。如果您事先不知道要比较此类策略的元素类型(或数量),则可能需要。

编辑:更明确地说,我认为该表将包含列: ID,Paramater1,Parameter2,Parameter3,Parameter4 其中 parameterx 是您正在查看的“可比较参数”之一 - 对于其中许多列可能保留为空,因为不存在这样的参数。

那么整个表只有一个表,每个 ID 在该表中只有一行。

于 2012-04-11T08:26:28.143 回答