将XML分解为多个表

时间:2018-07-04 07:32:49

标签: python sql r xml

是否有用于从嵌套XML快速提取到一个或多个表/data.tables的工具/程序包?

假设我正在使用以下示例格式的XML文件:

<root>
    <report>
        <summary>
        ...
        </summary>
        <history>
            <yr id="0" value="2014">
                <month id="0" value=""/>
                ...
            </yr>
            <yr id="1" value="2015">
            ...
            </yr>
        <updates>
            <update id="1">
            ...
            </update>
        </updates>
    </report>
</root>

似乎最简单的方法是将这些嵌套的块提取到单独的表(数据库或文件,无论实际是什么)中,并在必要时将数据合并到同一报表ID中。但是,由于根本不使用XML,因此我不知道有什么工具可以轻松地做到这一点,同时又在必要时添加各种ID并保持其唯一性。

一种方法是手工编写一些东西,但是感觉应该有为这种(自动)解析而制作的工具/程序包(R包XML在不指定任何xpath的情况下将所有内容解析为超扁平结构的工作非常出色,但是尝试将其投射到更清洁的东西上变得很乏味)。什么是最好的工具/软件包?我对R / python这样的简单语言很满意,但是完成工作并不重要。

奖金问题:添加以前不可见的字段时,是否有工具可以适应XML的更改并形成新表?

对于任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

不清楚您希望处理的输出是什么。但是,XSLT和XQuery都提供了简单的高级声明方式来实现您正在描述的任务,并且都被广泛使用。如果您提供一个具有所需输出的更具体的示例,那么我相信我们可以建议所需的代码种类。