From: Ricaud Matthieu (matthieu.ricaud@cned.fr)
Date: 18/05/2004 - 16:26
Bonjour,
Je te propose une solution en asp avec MSXML:
<%@ Language=VBScript %>
<%
' -----------------------Charger XML1.xml et XML2.xml
Dim objXML1, objRoot1
Set objXML1= server.CreateObject("Microsoft.XMLDOM")
if objXML1.load (Server.MapPath("XML1.xml")) then
Set objRoot1= objXML1.documentElement
else
set objXML1= Nothing
response.write("erreur")
response.end
end if
Dim objXML2, objRoot2
Set objXML2= server.CreateObject("Microsoft.XMLDOM")
if objXML2.load (Server.MapPath("XML2.xml")) then
Set objRoot2= objXML2.documentElement
else
set objXML2= Nothing
response.write("erreur")
response.end
end if
'-------------Selectionne le noeud Livre 1 dans XML2.xml
Dim objLIVRE1XML2
Set objLIVRE1XML2=objRoot2.selectSingleNode("LIVRE[@num='1']")
'-------------Selectionne le noeud Livre 1 dans XML1.xml
Dim objLIVRE1XML1
Set objLIVRE1XML1=objRoot1.selectSingleNode("LIVRE[@num='1']")
'-------------Remplacer le noeud Livre 1 d'XML1.xml par le noeud Livre 1
d'XML2.xml
Set objRoot1= objRoot1.replaceChild(objLIVRE1XML2, objLIVRE1XML1)
'---------Enregistrer les modifications apportées à XML1.xml
objXML1.save(Server.MapPath("XML1.xml"))
'-------------------Vider les variables-------------------
set objXML1= Nothing
set objXML2= Nothing
%>
J'ai testé avec tes documents XML1.xml et XML2.xml et ça marche apparament.
(par contre attention, tes documents xml étaient mal formée==> n'oublie pas
de fermer toutes les balises ouvertes...)
Cdlmt,
Matthieu Ricaud
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de Lara Callaway
Envoyé : mardi 18 mai 2004 11:16
À : xml-tech@xmlfr.org
Objet : [xml-tech] Extraction et insertion de données XML
Bonjour,
J'ai un petit soucis avec l'extraction et l'insertion de données XML. J'ai 2
fichiers XML :
-------------------------------------------------------
Fichier XML1.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<LIVRES>
<LIVRE num="1">
<TITRE>Livre 1</TITRE>
<AUTEUR>
<NOM>Nom 1</NOM>
<PRENOM>Prenom 1</PRENOM>
<AGE>Age 1</AGE>
</AUTEUR>
<EDITEUR>Editeur 1</EDITEUR>
<TYPE>
<NBPAGE>Nb page 1</NBPAGE>
<PAPIER>
<COULEUR>Couleur 1<COULEUR>
<QUALITE>
<COUVERTURE>Couverture 1<COUVERTURE>
<IMPRESSION>Impression 1<IMPRESSION>
<ILLUSTRATION>Illustration 1<ILLUSTRATION>
</QUALITE>
<PAPIER>
</TYPE>
</TITRE>
</LIVRE>
<LIVRE num="2">
<TITRE>Livre 2</TITRE>
<AUTEUR>
<NOM>Nom 2</NOM>
<PRENOM>Prenom 2</PRENOM>
<AGE>Age 2</AGE>
</AUTEUR>
<EDITEUR>Editeur 2</EDITEUR>
<TYPE>
<NBPAGE>Nb page 2</NBPAGE>
<PAPIER>
<COULEUR>Couleur 2<COULEUR>
<QUALITE>
<COUVERTURE>Couverture 2<COUVERTURE>
<IMPRESSION>Impression 2<IMPRESSION>
<ILLUSTRATION>Illustration 2<ILLUSTRATION>
</QUALITE>
<PAPIER>
</TYPE>
</TITRE>
</LIVRE>
</LIVRES>
-------------------------------------------------------
Fichier XML2.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<LIVRES>
<LIVRE num="1">
<TITRE>Livre 3</TITRE>
<AUTEUR>
<NOM>Nom 3</NOM>
<PRENOM>Prenom 3</PRENOM>
<AGE>Age 3</AGE>
</AUTEUR>
<EDITEUR>Editeur 3</EDITEUR>
<TYPE>
<NBPAGE>Nb page 3</NBPAGE>
<PAPIER>
<COULEUR>Couleur 3<COULEUR>
<QUALITE>
<COUVERTURE>Couverture 3<COUVERTURE>
<IMPRESSION>Impression 3<IMPRESSION>
<ILLUSTRATION>Illustration 3<ILLUSTRATION>
</QUALITE>
<PAPIER>
</TYPE>
</TITRE>
</LIVRE>
</LIVRES>
-------------------------------------------------------
J'aimerai que le noeud <LIVRE num="1"> du fichier XML2.xml soit extrait avec
toutes ses données pour les remplacer dans le fichier XML1.xml.
Pour avoir en résultat ceci :
-------------------------------------------------------
Fichier XML1.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<LIVRES>
<LIVRE num="1">
<TITRE>Livre 3</TITRE>
<AUTEUR>
<NOM>Nom 3</NOM>
<PRENOM>Prenom 3</PRENOM>
<AGE>Age 3</AGE>
</AUTEUR>
<EDITEUR>Editeur 3</EDITEUR>
<TYPE>
<NBPAGE>Nb page 3</NBPAGE>
<PAPIER>
<COULEUR>Couleur 3<COULEUR>
<QUALITE>
<COUVERTURE>Couverture 3<COUVERTURE>
<IMPRESSION>Impression 3<IMPRESSION>
<ILLUSTRATION>Illustration 3<ILLUSTRATION>
</QUALITE>
<PAPIER>
</TYPE>
</TITRE>
</LIVRE>
<LIVRE num="2">
<TITRE>Livre 2</TITRE>
<AUTEUR>
<NOM>Nom 2</NOM>
<PRENOM>Prenom 2</PRENOM>
<AGE>Age 2</AGE>
</AUTEUR>
<EDITEUR>Editeur 2</EDITEUR>
<TYPE>
<NBPAGE>Nb page 2</NBPAGE>
<PAPIER>
<COULEUR>Couleur 2<COULEUR>
<QUALITE>
<COUVERTURE>Couverture 2<COUVERTURE>
<IMPRESSION>Impression 2<IMPRESSION>
<ILLUSTRATION>Illustration 2<ILLUSTRATION>
</QUALITE>
<PAPIER>
</TYPE>
</TITRE>
</LIVRE>
</LIVRES>
-------------------------------------------------------
J'aimerai savoir si c'est possible... Je sais par exemple retiré le texte
d'un
noeud (voir ci-dessous (pour TITRE)) mais comment prendre tout ? le texte,
le
noeud et garder l'arborescence ? Et après comment faire pour l'insérer dans
mon
autre fichier ?
-------------------------------------------------------
function recupInfos()
Dim xmlDoc
Dim titre
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
if xmlDoc.load (Server.MapPath("XML2.XML")) then
titre = xmlDoc.documentElement.childNodes(0).text
else
set xmlDoc = Nothing
response.write("erreur")
response.end
end if
set xmlDoc = Nothing
end function
-------------------------------------------------------
Si vous pouviez m'aider parce que je patauge... Merci :)
Lara
--
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
|