2012-04-01 12 views
-1

私はSQLクエリからタプルのリストを返すpythonスクリプトを持っています。私はリストからのデータを持っているXMLファイルを更新したいと思います。Pythonを使用してxmlファイルを更新しますか?

クエリから受け取ったリストを持つ特定の要素またはノードを上書きするだけで何ができますか?ありがとうございました。

私はElementTreeからfindall()を使って要素のリストを見つけることができました。そして、setAttributeを使って更新することが推奨されました。しかし、setAttributesで繰り返しデータを挿入する可能性について私は何をしますか?

のは、私のXMLは顧客のリストが含まれているとしましょう:

(顧客名は= "ボブ"、年齢= "22") ..

私はSQLデータをループを使用することができ、かつsetAttributeを使用して新しいデータを追加します。しかし、私のSQLデータはそれを含むように起こる場合には、リストに追加の(顧客名=「ボブ」、年齢= "22)を追加しないのでしょうか?ありがとうございます。

+1

http://lxml.de/ –

答えて

0

Pythonの標準ライブラリからElementTreeモジュールを使用してください。あなたは木にそれを解析し、そして、あなたが探している要素を見つけるそれらを変更し、ライトバック、XMLファイルを読み込むことができます。

あなたはより具体的な質問がある場合は、お問い合わせください。

+0

ありがとうございます。 ElementTreeのドキュメントを使用して、xmlドキュメント内で探していた要素を見つけることができました。私は一般的な概念の更新について質問しています。例えば、私のSQLクエリは、このセットを返します。

+0

@timtran:あなたは既存の要素を削除し、代わりに新しいものを追加したり、既存の要素を変更することができます - –

0

python create xml and write to file
the official document for minidom
the official document for DOM
あなたはElement.setAttribute(name, value),Element.setAttributeNode(newAttr)などを使用して更新することができます

+0

ありがとうあなたのために、より適しているどのような方法。 ElementTreeのドキュメントを使用して、xmlドキュメント内で探していた要素を見つけることができました。私は一般的な概念の更新について質問しています。たとえば、私のSQLクエリは、(tom、22)、(mary、23)、(james 19)、(ed、37)、(paul、28)のセットを返します。このデータでXMLファイルを更新したいと思います。 xmlはすでにを含んでいます。重複を避けるため、すべての顧客タグを削除してこの更新を行い、新しい要素リストを作成して戻します。 –

関連する問題