0
私はこのようなPythonのファイルにサブ要素の値を変更する必要があります。パイソン - XMLファイル内の要素の値を変更するとのトラブル
<stock>
<product code="002">
<title>Electric</title>
<tracks>Wild flower,Peace dog,Electric ocean</tracks>
<price>30.50</price>
<pictures>002.gif</pictures>
<entry>12/06/2017</entry>
<artist>The Cult</artist>
<descr>Nice rock album</descr>
<genre>Hard Rock</genre>
<extras>Astbury,vocals Duffy,guitar Stewart,bass Warner,drums</extras>
<copies>8</copies>
</product>
</stock>
私はコピーの数を減少させる必要がある、私はこの方法を書きました、 ElementTree
ライブラリのドキュメント以下:
@staticmethod
def decrease_copies(prod_id):
from store.classes.Product import Product
tree = XMLUtil.parse_file(PROD_FILENAME)
bought = Product.fetch_from_xml(prod_id)
left_copies = int(bought.copies) - 1
for prod in XMLUtil.get_xml_root(PROD_FILENAME).iter('product'):
if prod.attrib.get('code') == prod_id:
cps = prod.find('copies')
cps.text = str(left_copies)
print(tree)
tree.write(PROD_FILENAME)
break
オブジェクトbought
は、XMLファイル内のフィールドとして全てのタグを含む製品クラスのインスタンスであり、PROD_FILENAME
は、ファイルのパスです。メソッドXMLUtil
parse_file
の名前は、ファイルのツリーを返します。
エラーは発生していませんが、購入をシミュレートするときにファイルが変更されていません。誰かが間違っていることを教えてくれますか?私は.usuallyすべてのあなたの操作を終了し、元のfile.whenを変更しないlxml
使用