From: Ricaud Matthieu (matthieu.ricaud@cned.fr)
Date: 19/05/2004 - 10:00
Décidement tu es fachée avec les fermeture des balises... mais bon j'imagine
que c t pour l'exemple, je te pardonne donc ;)
Sinon pour ton problème la méthode replaceChild() comme son nom l'indique
remplace un noeud enfant du noeud considéré par un autre noeud. Quand tu
fais :
Set objRoot1 = objRoot1.replaceChild(objlivreXML2, objlivreXML1)
objlivreXML1 (<LIVRE num="1">) doit être un enfant de objRoot1 (<BIBLIO>)
Ce qui n'est plus le cas avec ton nouveau fichier XML1.xml
Tu dois donc appliquer la méthode non pas à objRoot1 mais à son fils
<LIVRES> que tu peux écrire objRoot1.childNodes(0)
Ce qui donne :
Set objRoot1 = objRoot1.childNodes(0).replaceChild(objLIVRE1XML2,
objLIVRE1XML1)
et puis tant qu'à faire je me rend compte qu'il n'est pas nécessaire de
faire "Set objRoot1 =" tu peux dirrectement faire le remplacement comme ça :
objRoot1.childNodes(0).replaceChild objLIVRE1XML2, objLIVRE1XML1
(il n'admet pas les parenthèse pour les arguments dnas ce cas-là, chépa
pkoi)
Je vois qu'on utilise la même technologie (asp/xml) pour nos projet, ça
consiste en quoi le tien ?
Bibiothèque de livre en xml apparement, on peux rajouter des livres par
interface web c'est ça ? tu peux éditer la description des livres aussi ?
Utilises tu une bdd pour extraire la liste des livres existants ou alors as
tu une autre méthode pour indexer les fichiers xml ?
Enfin voila, ça peut être l'occasion de s'échanger des idées, je ne suis pas
développeur de formation et je me pose toujours des questions sur la
pertinence de mes méthodes...
cdlmt,
Matthieu
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de Lara Callaway
Envoyé : mercredi 19 mai 2004 10:36
À : xml-tech@xmlfr.org
Objet : [xml-tech] Re: Extraction et insertion dedonnées XML
Merci beaucoup pour ton aide, ça marche très bien. J'aimerai cependant faire
une petite modification.
Immaginons que mes fichiers XML deviennent comme cela :
****************************
XML1.XML
<BIBLIO>
<LIVRES>
<LIVRE num="1">
<TRUC1>truc 1<TRUC1>
<TRUC2>truc 1<TRUC2>
<LIVRE>
<LIVRE num="2">
<TRUC1>truc 2<TRUC1>
<TRUC2>truc 2<TRUC2>
<LIVRE>
<LIVRES>
<BIBLIO>
****************************
XML2.XML
<BIBLIO>
<LIVRES>
<LIVRE num="1">
<TRUC1>truc 3<TRUC1>
<TRUC2>truc 3<TRUC2>
<LIVRE>
<LIVRES>
<BIBLIO>
****************************
J'ai donc mon livre qui descend d'un niveau. J'ai modifié le code mais ça ne
fonctionne plus. J'immagine qu'il faut que je change les noms des fonctions
de
noeuds ?? Parce que j'ai juste changé livres/livre[@num='1'].
J'ai une erreur du genre : "Le noeud de position d'insertion doit être un
noeud
enfant du noeud sous lequel effectuer l'insertion."
Voilà mon code :
****************************
function recuplivre (XMLFile1, XMLFile2) 'ce sont mes fichiers XML
Dim objXML1
Dim objRoot1
Set objXML1 = server.CreateObject("Microsoft.XMLDOM")
if objXML1.load (Server.MapPath(XMLFile1)) then
Set objRoot1 = objlivreXML1.documentElement
else
set objXML1= Nothing
response.write("erreur")
response.end
end if
Dim objXML2
Dim objRoot2
Set objXML2= server.CreateObject("Microsoft.XMLDOM")
if objXML2.load (Server.MapPath(XMLFile2)) then
Set objRoot2= objXML2.documentElement
else
set objXML2= Nothing
response.write("erreur")
response.end
end if
Dim objlivreXML2
Set objlivreXML2 = objRoot2.selectSingleNode("livres/livre[@num='1']")
Dim objlivreXML1
Set objlivreXML1 = objRoot1.selectSingleNode("livres/livre[@num='1']")
Set objRoot1 = objRoot1.replaceChild(objlivreXML2, objlivreXML1)
objXML1.save (Server.MapPath(XMLFile1))
set objXML1= Nothing
set objXML2= Nothing
end function
****************************
Selon Ricaud Matthieu <matthieu.ricaud@cned.fr>:
>
> Bonjour,
>
> Je te propose une solution en asp avec MSXML
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|