我正在尝试根据配置文件(也可以是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
一种方法可以做到这一点
- 解析配置文件(其中,标签可以有我感兴趣的节点的xpath)
- 读取输入文件
- 写入输出,使用基于配置文件的 etbuilder
作为 python 的新手,并且没有看到对 etbuilder 的 xpath 支持,我想知道这是不是最好的方法。也不确定所有例外情况。有没有更简单的方法,或者任何其他库中的本机支持。如果可能的话,我不想在这项任务上花费太多时间,因为我可以专注于核心任务。
提前感谢INS。
如果您希望将一个 XML 文件转换为另一个 XML 文件,那么 XSLT 就是为此目的而创建的。您必须定义一个描述 XML 内容的转换以及最终输出的外观的.xslt
文件。这是一种方法。
您还可以使用 lxml
读取 XML 文件,并使用 lxml.etree.ElementTree
生成输出 XML。我不熟悉etbuilder
但我认为生成所需的输出并不那么困难。解析输入文件后,可以生成配置 XML 并将其写入文件。
XPath主要用于读取XML内容,您不需要它来构造XML文件。事实上,如果你使用适当的XML解析器,那么你也不需要XPath来读取文件内容,尽管XPath可以使生活更轻松一些。