0

WindowsとLinuxの両方でうまくいくコマンドラインプログラムを作りたいです。Pythonは私の選択したプログラミング言語なので、使用したいと思います。目標は、プログラムにファイル名を引数として取り、ファイルからの情報を別の形式で出力させることです。この場合、XML->CSVおよびCSV->XMLです。

これを行うための最良の方法は何ですか?

xml.parsers.expatPythonには、csvライブラリなどのXMLパーサーとCSVパーサーがあることを知っています。プログラムを堅牢にして、.sqlなどの他の形式で出力できるようにします。最初にデータを標準形式に変換することでメリットがありますか?JSONのように?次に、出力ファイルを必要に応じて他の形式にすることができます。

ありがとう。

編集::

<level1 id ='' attr1='' attr2=''>
    <level2 id ='' attr1='' attr2=''>
        <type1 id ='' attr1='' attr2=''>
        </type1>
        <type2 id ='' attr1='' attr2=''>
        </type2>
    </level2>
    <level2 id ='' attr1='' attr2=''>
        <type2 id ='' attr1='' attr2=''>
        </type2>
    </level2>
</level1>

これはXML形式です。level2内のtype1とtype2に注意してください。では、この行をcsvで1行ずつ表すにはどうすればよいですか?

編集#2:

この質問は、ツリーのようなデータ構造とグリッド構造の間で変換するための標準的な方法に帰着すると思います。結局、JSONのようにPythonでネストされたリストを作成しましたが、JSON構造を使用しませんでした。この変換を行うための一般的な優れたアルゴリズムがあるのだろうか?

4

2 に答える 2

1

XMLをJSONに変換して元に戻す方がよいでしょう。どちらの形式も、複数のネストレイヤーをサポートしています。対照的に、CSVは、追加のネストがない行のリストに適しています。

于 2011-11-19T23:42:56.287 に答える
0

データを標準のpythondictに変換し、それから必要な形式に変換する必要があります。

もちろん、xmlをcsvに変換するには、次のような特別にフォーマットされたxmlが必要です。

<root>
    <column1>value</column1>
    <column2>value</column2>
    <column3>value</column3>
</root>
于 2011-11-19T20:26:10.117 に答える