使用提取的信息映射xml文件

时间:2012-06-09 13:10:27

标签: python xml-parsing lxml elementtree minidom

我正在尝试根据配置文件(也可以是xml文件)将一个xml文件映射到另一个xml文件。

输入

<ia>
    <ib>...</ib>
    <ic>...</ic>
</ia>

输出

<oa>
    <ob>...</ob>
    <oc>...</oc>
</oa>

配置

<config>
    <conf>
        <input>ia</input>
        <output>oa</output>
    </conf>
    <conf>
        <input>ib</input>
        <output>ob</output>
    </conf>
    .....
</config>

因此,目的是解析xml文件并检索我感兴趣的信息,并写入另一个xml文件,其中在配置文件中指定了映射信息。

由于脚本性质(以及后续插件的扩展),以及对xml处理的支持,我正在考虑使用python。我刚刚学习了语言的语法和基础知识,并了解了lxml

这样做的一种方法

  1. 解析配置文件(其中,tag可以有xpath到我感兴趣的节点)
  2. 阅读输入文件
  3. 根据配置文件
  4. 使用etbuilder写入输出

    成为python的新手,并没有看到etbuilder的xpath支持我想知道这是最好的方法。还不确定所有特殊情况。是否有更简单的方法,或任何其他库中的本机支持。如果可能的话,我不想花太多时间在这项任务上,因为我可以专注于核心任务。

    感谢提前。

1 个答案:

答案 0 :(得分:2)

如果您希望将XML文件转换为另一个XML文件,则XSLT就是为此目的而制作的。您必须定义一个.xslt文件,该文件描述XML内容的转换以及最终输出应该是什么样的。这是一种方法。

您还可以使用lxml读取XML文件,并使用lxml.etree.ElementTree生成输出XML。我不熟悉etbuilder,但我认为生成所需的输出并不困难。解析输入文件后,可以构建配置XML并将其写入文件。

XPath主要用于读取XML内容,您不需要它来构建XML文件。事实上,如果你使用一个合适的XML解析器,那么你不需要XPath来读取文件内容,尽管XPath可以让生活更轻松。