Read XML file which has xmlns in tag with python

gaskamsa

New Member
im trying to read a element form a xml file to add new elements.the tag im trying to find contains xmlns.it looks like this:\[code\]<labcore.logging.service defaultSystemIdentificationCode="??" xmlns="http://schemas.com/labcore/configuration"><storage databaseName="COMIT" storageType="Oracle" /><logEventDefinitions> <logEventDefinition assembly="IM.LogEventDefinitions" /> <logEventDefinition assembly="BarcodeEntry.LogEventDefinitions" /> <logEventDefinition assembly="MaintenanceScheduling.ActivityLog.Messages.LogEventDefinitions" /> <logEventDefinition assembly="InCore.LogEventDefinitions" /> <logEventDefinition assembly="LogEventPackage.LogEventDefinitions" /></logEventDefinitions>\[/code\]and my python code looks like this:\[code\]import xml.etree.ElementTree as xml\[/code\]def modifyComitLoggingConfigFile(filePath, fileName):\[code\] path = filePath+"\\"+fileName IM = xml.Element("logEventDefinition") IM.attrib["assembly"] = "IM.LogEventDefinitions" BarcodeEntry = xml.Element("logEventDefinition") BarcodeEntry.attrib["assembly"] = "BarcodeEntry.LogEventDefinitions" MaintenanceScheduling = xml.Element("logEventDefinition") MaintenanceScheduling.attrib["assembly"] = "MaintenanceScheduling.ActivityLog.Messages.LogEventDefinitions" RTCosmo3 = xml.Element("logEventDefinition") RTCosmo3.attrib["assembly"] = "InCore.LogEventDefinitions" tree = xml.parse(path) rootElement = tree.getroot() loggingTag = rootElement.find("labcore.logging.service") print "loggingTag" print loggingTag print logEventDefinitionsTag = loggingTag.find("logEventDefinitions") print "logEventDefinitionsTag" print logEventDefinitionsTag print logEventDefinitionsTag.insert(0, RTCosmo3) logEventDefinitionsTag.insert(0, MaintenanceScheduling) logEventDefinitionsTag.insert(0, BarcodeEntry) logEventDefinitionsTag.insert(0, IM) print "definitionfilesTag" print logEventDefinitionsTag print print "xml.tostring of definitionfilesTag" print xml.tostringlist(logEventDefinitionsTag) print tree.write(path+"1") return\[/code\]and at the following line: import xml.etree.ElementTree as xmldef modifyComitLoggingConfigFile(filePath, fileName):\[code\] path = filePath+"\\"+fileName IM = xml.Element("logEventDefinition") IM.attrib["assembly"] = "IM.LogEventDefinitions" BarcodeEntry = xml.Element("logEventDefinition") BarcodeEntry.attrib["assembly"] = "BarcodeEntry.LogEventDefinitions" MaintenanceScheduling = xml.Element("logEventDefinition") MaintenanceScheduling.attrib["assembly"] = "MaintenanceScheduling.ActivityLog.Messages.LogEventDefinitions" RTCosmo3 = xml.Element("logEventDefinition") RTCosmo3.attrib["assembly"] = "InCore.LogEventDefinitions" tree = xml.parse(path) rootElement = tree.getroot() loggingTag = rootElement.find("labcore.logging.service") print "loggingTag" print loggingTag print logEventDefinitionsTag = loggingTag.find("logEventDefinitions") print "logEventDefinitionsTag" print logEventDefinitionsTag print logEventDefinitionsTag.insert(0, RTCosmo3) logEventDefinitionsTag.insert(0, MaintenanceScheduling) logEventDefinitionsTag.insert(0, BarcodeEntry) logEventDefinitionsTag.insert(0, IM) print "definitionfilesTag" print logEventDefinitionsTag print print "xml.tostring of definitionfilesTag" print xml.tostringlist(logEventDefinitionsTag) print tree.write(path+"1") return\[/code\]and on the folowing line: loggingTag = rootElement.find("labcore.logging.service") the following error occured: AttributeError: 'NoneType' object has no attribute 'find'but wehn i remove the xmlns part from the tag, it works.does anybody know how i can solve this?thank you very muchku5ar
 
Back
Top