2017-06-15 55 views
0

我遇到問題。我試圖將所有的發佈數據追加到xml文件中,但它總是覆蓋。我在下面解釋我的代碼。無法將數據附加到使用Django和Python的xml文件中

def some(request): 
    if request.method == 'POST': 
     location_name = request.POST.get('lname') 
     rname = request.POST.get('rname') 
     seat = request.POST.get('seat') 
     projector = request.POST.get('projector') 
     video = request.POST.get('video') 
     root = ET.Element("roomlist") 
     doc = ET.SubElement(root, "locationname", name=location_name) 
     doc1 = ET.SubElement(doc, "roomid", name="1234") 
     ET.SubElement(doc1, "roomname", name=rname).text = rname 
     ET.SubElement(doc1, "noseats", name=seat).text = seat 
     ET.SubElement(doc1, "projectorscreen", name=projector).text = projector 
     ET.SubElement(doc1, "videoconf", name=video).text = video 
     tree = ET.ElementTree(root) 
     tree.write("filename.xml") 
    return render(request, 'booking/bmr.html', {}) 

在這裏,我需要在用戶提交表單的所有數據將追加到現有的XML文件,但在我的情況下,其覆蓋每time.Please幫我解決這個問題。

回答

0

你需要創建自己的數據和附加到文件:

root = tree.getroot()  
xmlstr = ET.tostring(root, 'utf-8', method='xml') 
with open("filename.xml", "a") as myfile: 
    myfile.write(xmlstr) 

所以我要做的就是創建樹(代碼)並轉換爲字符串(tostring()),只是這個字符串添加到文件:)

+0

我按照你做的,但它拋出'NameError在/ some/ 全球名'ElementTree'未定義 錯誤。 – satya

+0

我使用這個'import xml.etree.cElementTree作爲ET'一個 – satya

+0

所以使用'ET.fromstring'而不是'ElementTree.tostring' – MaximeK

相關問題