2015-10-13 38 views
0

下面的代碼給出了錯誤: 線19,在modifyXML self.PreFlopCallPower.text = 'NEW VALUE' AttributeError的: 'STR' 對象具有沒有屬性「文本」修改XML與ElementTree的: 'STR' 對象沒有屬性 '文本'

問題似乎是self.PreFlopCallPower只是一個字符串,而不是一個elementTree對象,即使我的示例與python etree文檔中給出的示例非常相似:self.PreFlopCallPower = entry .find( 'PreFlopCallPower')。文字。我怎樣才能解決這個問題?我看不到我在做什麼這裏列出的更新示例不同:https://docs.python.org/2/library/xml.etree.elementtree.html

import xml.etree.ElementTree as xml 


class XMLHandler(object): 
    def __init__(self,StrategyName): 
     self.readXML(StrategyName) 
     self.modifyXML() 

    def readXML(self, StrategyName): 
     self.Template = StrategyName 
     self.tree = xml.parse('strategies.xml') 
     self.root = self.tree.getroot() 

     for entry in self.root.findall('Strategy'): 
      if entry.get('name') == StrategyName: 
       self.PreFlopCallPower = entry.find('PreFlopCallPower').text 

    def modifyXML (self): 
     self.PreFlopCallPower.text = 'NEW VALUE' # ---ERROR OCCURS HERE--- 
     self.PreFlopCallPower.set('updated', 'yes') 
     self.tree.write('output.xml') 


X=XMLHandler('Strategy305PP') 

回答

0

在這一行,你存儲節點的文本(因此有str):

self.PreFlopCallPower = entry.find('PreFlopCallPower').text 

.text存儲節點本身:

self.PreFlopCallPower = entry.find('PreFlopCallPower') 
相關問題