Je voudrais savoir comment je pourrais faire pour modifier un fichier xml en asp ?
Je voudrais savoir comment je pourrais faire pour modifier un fichier xml en asp ?
Salut Princemaster
Fais une recherche sur XMLDOM.
A+
"Winter is coming" (ma nouvelle page d'accueil)
je parviens à modifier mon fichier mais lors d'une nouvelle modification j'ai une erreur dû à mon avis à un soucis de vidage de mon paramètre Lecture.ReadLine, mon erreur est : "L'entrée dépasse la fin du fichier".
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Set FSO = Server.CreateObject("Scripting.FileSystemObject") FichierXml = GetDirWithoutLastDelimiter(REPWORK) &"\Cartes\CarteDeViste.xml" set Lecture = FSO.OpenTextFile(FichierXml,1,false) For i=0 To DebutLigne - 2 Line1 = Line1 & Lecture.ReadLine + vbCr Next Lecture.skipLine Lecture.skipLine While not Lecture.atEndOfStream Reste = Reste + Lecture.ReadLine + vbCr Wend Lecture.close set Ecriture = FSO.OpenTextFile(FichierXml,2,false) Line2 = " <position PosX="""& NewPosX &""" PosY="""& NewPosY &""" Align="""& NewAlign &"""/>" Line3 = " <Police Italic="""& NewItalic &""" Gras="""& NewGras &""" Souligne="""& NewSouligne &""" Taille="""& NewTaille &""">"""& NewPolice &"""</Police>" Ecriture.writeLine Line1 Ecriture.writeLine Line2 Ecriture.writeLine Line3 Ecriture.writeLine Reste Ecriture.close set Lecture=nothing set Ecriture=nothing set FSO=nothing
Mon but est de remplacer des valeurs de mon fichier XML depuis une application ASP, pour cela je voudrais rechercher des attributs.
Voici mon fichier XML :
Je voudrais récupérer la valeur PosX="400" pour la remplacer par PosX="500"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <model_carte> <nom Largeur="90" Hauteur="52">Modele simple</nom> <img_background>CarteDeVisite\Logo\CarteDkRepro.gif</img_background> <elements> <element> <libelle Presence="1">Nom</libelle> <position PosX="400" PosY="200" Align="Center"/> <Police Italic="1" Gras="0" Souligne="0" Taille="10">Verdana</Police> </element> ...
explications à cette adresse : http://www.devguru.com/technologies/xml_dom/index.asp.
Jette un coup d'oeil à : selectNodes, attributes, setAttribute et save
Je voudrais remplacer un attribut de mon fichier XML
Voici mon fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <model_carte> <nom Largeur="90" Hauteur="52">Modele simple</nom> <img_background>CarteDeVisite\Logo\CarteDkRepro.gif</img_background> <elements> <element> <position PosX="400" PosY="200" Align="Center" Presence="1">Nom - Prénom</position> <Police Italic="1" Gras="0" Souligne="0" Taille="10">Verdana</Police> </element> ...Voici la ligne du fichier xml concerné : Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 NomChamps = Request.QueryString("NomChamps") set Nodes=xmlDoc.selectNodes("/model_carte/elements/element/position[.='"& NomChamps &"']") For each x in nodes 'Set x.xml.Replace(10,10,"PosX=100") Next
Je voudrais remplacer mon attribut PosX="400" par PosX="100"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <position PosX="400" PosY="200" Align="Center" Presence="1">Nom - Prénom</position>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 objXMLDoc.load("??????.xml") Set NodeList = objXMLDoc.documentElement.selectNodes("model_carte/elements/element/position ") For Each Node In NodeList att = Node.Attributes("PosX") if att=100 then Node.setAttribute(400) end if Next
J'ai une erreur sur la ligne "att = Node.Attributes("PosX")" qui est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Type incompatible: 'attributes' /Appli_ng/File.asp, ligne 96
c'est peut être getattribute qu'il faut utiliser alors et non attributes
Un exemple ici http://www.devguru.com/technologies/xml_dom/15914.asp
il fallait bien utiliser un getAttribute mais mon deuxieme soucis se trouve dans le filtrage de mes noeuds.
Mon soucis est qu'avec se selectnode je ne rentre pas dans ma boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Champs = "Nom" NewPosX = Request.QueryString("NewPosX") Set NodeList = xmlDoc.documentElement.selectNodes("/model_carte/elements/element/position[@text='"& Champs &"']") For Each Node In NodeList 'att = Node.getAttribute("PosX") Node.setAttribute "PosX",""& NewPosX &"" 'Sauvegarde dans le fichier XML des modifications apportées. 'xmlDoc.save(GetDirWithoutLastDelimiter(REPWORK) &"\Cartes\CarteDeViste2.xml") Next
Pour rappel, voici mon fichier xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <elements> <element> <position PosX="500" PosY="200" Align="center" Presence="1 ">Nom</position> <Police Italic="1" Gras="0" Souligne="0" Taille="10">Verdana</Police> </element> ...
essaie avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set NodeList = xmlDoc.documentElement.getElementsByTagName("position")
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager