1

次のような構造のsync_list.xmlというXMLドキュメントがあります。

root = ET.Element("root")
synced = ET.SubElement(root, "synced")
synced.set("name", "Already Synced")
sfile = ET.SubElement(synced, "sfile")
sfile.set("name", "Filename")
sfile.text = "base"

tree = ET.ElementTree(root)
tree.write("sync_list.xml")

そのため、私は次のようになります。

<root><synced name="Already Synced"><sfile name="Filename">base</sfile></synced></root>

そして、私はディレクトリ内の複数のファイルです。sfileファイルを開くたびに、これらのファイル名を新しいエントリとして「追加」したいと思います。だから私はこのようなものになってしまうでしょう:

<root><synced name="Already Synced"><sfile name="Filename">base</sfile><sfile name="Filename">File1.blah</sfile><sfile name="Filename">File2.blah</sfile><sfile name="Filename">File3.blah</sfile></synced></root>

どうすればこれを達成できますか?手伝ってくれてどうもありがとう。

4

1 に答える 1

0

あなたはほとんどそこにいます。ファイルを読み返して、その中の<synced>要素を見つける必要があります。

from __future__ import unicode_literals
from xml.etree import cElementTree as etree

tree = etree.parse('sync_list.xml')
synced = tree.find('synced')
for filename in ["file\u00b9", "file2", "file3"]:
    sfile = etree.SubElement(synced, "sfile", name="Filename")
    sfile.text = filename

tree.write('sync_list_appended.xml', encoding='utf-8', xml_declaration=True)
于 2012-11-20T18:53:37.730 に答える