Comment faire disparaitre xmlns = ""

Signaler
Messages postés
1
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 juillet 2002
-
Messages postés
77
Date d'inscription
samedi 9 novembre 2002
Statut
Membre
Dernière intervention
6 juillet 2014
-
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

Messages postés
77
Date d'inscription
samedi 9 novembre 2002
Statut
Membre
Dernière intervention
6 juillet 2014

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