1

我正在尝试基于配置文件(也可以是 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. 解析配置文件(其中,标签可以有我感兴趣的节点的xpath)
  2. 读取输入文件
  3. 使用基于配置文件的etbuilder写入输出

作为 python 新手,没有看到对 etbuilder 的 xpath 支持,我想知道这是最好的方法。也不确定所有的例外情况。有没有更简单的方法,或者任何其他库中的原生支持。如果可能的话,我不想在这项任务上花费太多时间,因为我可以专注于核心任务。

提前感谢ins。

4

1 回答 1

2

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

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

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

于 2012-06-09T14:15:11.270 回答