Pb pour un noeud XML <xxxx/>

skercrow

Membre confirmé
14 Février 2011
12
0
paris
Bonjour,
J'ai un fichier XML que je charge en mémoire. Je modifie les noeuds du XML et je sauvegarde dans un autre fichier.

Tout se passe bien. Je peux modifier les noeuds du document XML.
Si je choisis un noeud du style:
<title></title>
alors je peux insérer du texte dans le noeud title par:
Bloc de code:
[elem setStringValue:text];
Si je veux insérer du texte dans un noeud qui a des sous-noeuds :
Bloc de code:
NSXMLNode *appendNode = [NSXMLNode textWithStringValue:text];
[elem addChild:appendNode];

Par contre, il me semble que si le noeud est :
<meta .../>
c'est-à-dire si le noeud se termine par un "/" à la fin (comme un <br/>)
alors l'ajout du texte dans ce noeud ne fonctionne pas.

Bloc de code:
[elem setStringValue:text];
même avec:
Bloc de code:
NSXMLNode *appendNode = [NSXMLNode textWithStringValue:text];
[elem addChild:appendNode];

Il n'y a pas d'erreur. Juste le XML résultant n'a pas changé.

je ne comprends pas pourquoi. et quelle serait la solution pour que ça fonctionne ?
Merci de votre aide :up:

---------- Nouveau message ajouté à 08h47 ---------- Le message précédent a été envoyé à 08h05 ----------

J'ai compris pourquoi:
c'est parce que meta est un tag en HTML qui ne peut pas comporter de sous-noeuds.
Et comme NSXMLDocument charge avec le mode TidyHTML alors il supprime automatiquement le contenu dans le tag meta.
Pour les autres tags du genre <p/>, on peut tout à fait ajouter du texte.

c bon à savoir...