From: Paul-Marie (paulmarie.dupuis@cgey.com)
Date: 22/08/2001 - 08:02
Bonjour
J'ai tapé une fonction dans mon script pour le déplacement de mes noeuds
col, ça donne ça :
function deplacer_col(pos_col) {
// pos_col est la position dans l'élément ligne des noeuds col à déplacer
// Déclarations des objets
var noeuds_ligne = new Object()
var noeud_col = new Object()
var noeud_ref = new Object()
var noeud_temp = new Object()
dom_xml.setProperty("SelectionLanguage", "XPath");
// Selection des noeuds ligne
noeuds_ligne = dom_xml.documentElement.selectNodes("/data/ligne")
nb_lignes = noeuds_ligne.length
// Déplacement de chaque noeud col
for (indice = 0 ; indice < nb_lignes ; indice++) {
// Selection du noeud col à déplacer et du noeud avant lequel l'insérer
str_XPath_col = "/data/ligne["+indice+"]/col["+pos_col+"]"
pos_insert = pos_col + 2
str_XPath_ref = "/data/ligne["+indice+"]/col["+pos_insert+"]"
noeud_col = dom_xml.documentElement.selectSingleNode(str_XPath_col)
noeud_ref = dom_xml.documentElement.selectSingleNode(str_XPath_ref)
// Déplacement du noeud col
noeud_temp = noeud_col.cloneNode(true)
noeuds_ligne[indice].insertBefore(noeud_temp, noeud_ref)
noeuds_ligne[indice].removeChild(noeud_col)
}
document.body.innerHTML = dom_xml.transformNode(dom_xsl)
}
Seulement, je fais une erreur sur l'utilisation du insertBefore(). Le
message d'erreur sous IE est "Insert position Node must be a Child of the
Node to insert under". Il me semble pourtant que noeud_ref est bien noeud
fils de noeuds_ligne[indice].
Quelqu'un a-t-il une idée pour m'aider ?
PM
----- Original Message -----
From: "Olivier LAMY" <olivier.lamy@rtlnet.fr>
To: <xml-tech@xmlfr.org>
Sent: Tuesday, August 21, 2001 12:00 PM
Subject: [xml-tech] RE: [xml-tech] Re: [xml-tech] RE: [xml-tech] déplacement
d'éléments ds DOM
> Après, il faut réfléchir à un petit algorithme qui permet de déplacer un
ou
> plusieurs noeuds mais à mon avis il faut déplacer les moeuds un par un à
> l'aide d'une boucle.
>
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Paul-Marie
> Envoyé : mardi 21 août 2001 11:53
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Re: [xml-tech] RE: [xml-tech] déplacement d'éléments
> ds DOM
>
>
>
> OK mais c'est une manip que je dois réaliser sur chaque noeud à déplacer
> séparément ? Ou alors y a-t-il moyen de travailler sur une liste de noeuds
?
> Mon problème est d'appliquer ce déplacement du bon élément col dans tous
les
> éléments ligne du xml.
>
> Merci de votre aide
> PM
>
> ----- Original Message -----
> From: "Olivier LAMY" <olivier.lamy@rtlnet.fr>
> To: <xml-tech@xmlfr.org>
> Sent: Tuesday, August 21, 2001 11:33 AM
> Subject: [xml-tech] RE: [xml-tech] déplacement d'éléments ds DOM
>
>
> > Une solution consiste à cloner le noeud à déplacer (méthode cloneNode)
> puis
> > à insérer le noeud cloné à l'endroit voulu avec la méthode insertBefore
et
> > enfin à supprimer le noeud qui a été cloné.
> > Un simple jeu de manipulation de "pointeur" sur des noeuds en quelque
> sorte.
> >
> > -----Message d'origine-----
> > De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> > part de Paul-Marie
> > Envoyé : mardi 21 août 2001 11:27
> > À : xml-tech@xmlfr.org
> > Objet : [xml-tech] déplacement d'éléments ds DOM
> >
> >
> > Bonjour,
> >
> > J'ai un XML qui ressemble à ce qui suit :
> >
> > <data>
> > <ligne>
> > <col>contenu cellule 1.1</col>
> > <col>contenu cellule 1.2</col>
> > <col>contenu cellule 1.3</col>
> > <col>contenu cellule 1.4</col>
> > </ligne>
> > <ligne>
> > <col>contenu cellule 2.1</col>
> > <col>contenu cellule 2.2</col>
> > <col>contenu cellule 2.3</col>
> > <col>contenu cellule 2.4</col>
> > </ligne>
> > etc...
> > </data>
> >
> > Dans un objet DOM de mon fichier XML, je souhaite pouvoir déplacer
les
> > colonnes de mon tableau. En particulier, comment déplacer toutes les
> noeuds
> > col en position x et les passer en position x+1 ou x-1 (afin de faire un
> > déplacement de colonne vers la droite ou vers la gauche dans mon
> affichage)
> > pour le moment, je suis parti dans mon JavaScript sur une selection du
> style
> > :
> > noeuds = dom_xml.documentElement.selectNodes(//ligne/col[position()
=
> > x])
> > mais j'ai un peu de mal à m'y retrouver. Quelqu'un peut-il m'aider ?
> >
> > Merci de votre aide.
> > PM
> >
> > --
> > 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)
>
> --
> 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)
--
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
|