Bonjour,

Soit le petit fichier xml suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<pypo_config_file>
 <appname>pypo</appname>
 <version>0.1</version>
 <class>
  <activeclass>None</activeclass>
  <knownclass />
 </class>
</pypo_config_file>
Je veux créer un subelement dans knownclasse :
Je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 knInstChild = m_CommonRoot.find("knownclass")
          instanceChild = ET.SubElement(knInstChild,"myname")
ET.subElement échoue car knInstChild est « None ».
(AttributeError: 'NoneType' object has no attribute 'makeelement')
Pourtant, si j'itère dans le fichier xml par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
for child in m_CommonRoot.iter():
	print(child.tag, child.text)
J'obtiens
pypo_config_file

appname pypo
version 0.1
class

activeclass None
knownclass None
Je ne comprends pas pourquoi l'élément est None quand recherché avec m_CommonRoot.find("knownclass") et pas quand il est cherché avec m_CommonRoot.iter(). Il n'est pas "None" puisqu'on peut afficher son tag et son texte (qui lui est None).

Merci de votre aide.