1

構成ファイル(これも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つの方法

  1. 構成ファイルを解析します(ここで、タグは、関心のあるノードへのxpathを持つことができます)
  2. 入力ファイルを読み取る
  3. 設定ファイルに基づいてetbuilderを使用して出力に書き込みます

Pythonを初めて使用し、etbuilderのxpathサポートが表示されないのは、これが最善のアプローチだと思います。また、すべての例外的なケースもわかりません。より簡単な方法、または他のライブラリでのネイティブサポートはありますか?可能であれば、コアタスクに集中できるので、このタスクにあまり時間をかけたくありません。

よろしくお願いします。

4

1 に答える 1

2

XMLファイルを別のXMLファイルに変換したい場合は、この目的のためにXSLTが作成されました。.xsltXMLコンテンツの変換と、最終的な出力がどのようになるかを説明するファイルを定義する必要があります。それはそれを行う1つの方法です。

を使用してXMLファイルを読み取り、を使用lxmlして出力XMLを生成することもできますlxml.etree.ElementTree。私はよく知らないetbuilderが、望ましい出力を生成することはそれほど難しいとは思わない。入力ファイルを解析したら、構成XMLを作成してファイルに書き込むことができます。

XPathは主にXMLコンテンツを読み取るためのものであり、XMLファイルの作成には必要ありません。実際、適切なXMLパーサーを使用している場合は、ファイルの内容を読み取るためにXPathも必要ありませんが、XPathを使用すると作業が少し楽になります。

于 2012-06-09T14:15:11.270 に答える