Comment faire disparaitre xmlns = ""

cs_bux Messages postés 1 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 9 juillet 2002 - 9 juil. 2002 à 16:28
JMC70 Messages postés 77 Date d'inscription samedi 9 novembre 2002 Statut Membre Dernière intervention 6 juillet 2014 - 14 nov. 2004 à 18:00
Je dois creer un fichier xml avec le DOM. Je dois attribuer un namespace dans la racine. Je parviens a le faire apparaitre mais dans chaque noeud enfant est inscrit xmlns = "". Cette instruction disparait ensuite dans les petits-enfants. Quand je teste l'existence d'attribut à ce niveau il me dit qu'il n'y en a pas. Quel code utiliser pour faire apparaitre le xmlns sur un seul niveau?

Voici mon code avec un xmlns bidon :

Dim xmlDoc As DOMDocument

Sub main()
Dim pi As IXMLDOMProcessingInstruction
Dim rootNode As IXMLDOMNode
Dim MyNode As IXMLDOMNode

Set xmlDoc = New DOMDocument
Set pi = xmlDoc.createNode(NODE_PROCESSING_INSTRUCTION, "xml", "")
xmlDoc.appendChild pi

Set rootNode = xmlDoc.createNode(NODE_ELEMENT, "Root", "http://www.microsoft.com")
xmlDoc.appendChild rootNode
Set rootNode = xmlDoc.documentElement

Set MyNode = xmlDoc.createNode(NODE_ELEMENT, "TestNode", "")
rootNode.appendChild MyNode
MyNode.Text = "Test"

xmlDoc.save "c:\test.xml"

End Sub

1 réponse

JMC70 Messages postés 77 Date d'inscription samedi 9 novembre 2002 Statut Membre Dernière intervention 6 juillet 2014
14 nov. 2004 à 18:00
Réponse très tardive qui peut en aider certains.
Création d'un en-tête et création d'un attribut sur le noeud racine (ici la date de création du fichier). Voir la source ID=27570 sur un petit tutoriel que j'ai réalisé.
' ---------------------------
' Facultatif : on place un en-tête dans le fichier (avant le noeud racine)
Dim xInstruction As IXMLDOMProcessingInstruction
Set xInstruction = xmlFic.createProcessingInstruction("xml", "version=""1.0""")
Call xmlFic.insertBefore(xInstruction, xmlFic.childNodes.Item(0))
' ---------------------------
' On crée le noeud racine dans le fichier. On le nomme "DONNEES"
' (le fichier ne peut contenir qu'un seul noeud racine de niveau 1)
Set xRacine = xmlFic.createElement("DONNEES")
' ---------------------------
' facultatif, on place la date de création dans l'étiquette du noeud
xRacine.setAttribute "Date_creation", Format$(Now, "dd/mm/yy")
' ---------------------------
xmlFic.appendChild xRacine
End If
' ---------------------------

JMC70
0