[XML][ASP]Chaine de Charactere [Résolu]

Signaler
Messages postés
4
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004
-
Messages postés
4
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004
-
bonjour à tous et toutes

Etant novice dans le domaine ASP et XML je solicite votre aide car jusqu'a présent j'arrivais à m'autoformer via tutoriaux et coup de chance :)

J'arrive à un point ou de l'aide exterieure serait la bienvenue.
Je vous expose donc mon probleme:

j ai mis en ligne des fiches xml + xsl à l aide d une fonction qui laod le fichier xml + xsl .

j ai un fichier relation.xml qui contient le numero des fiches xml servant a un chainage entre mes fiches; la structure du fichier ressemble a ceci :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href=".../XSL/relations.xsl"?>

<Rel>
<DPtoCP>825 25 366 35 | 151 15 26 | ... ... |</DPtoCP>
<CPtoDP>N°fiche CP .....n-fiches DP....|N°fiche CP.... etc</CPtoDP>
<CPtoSC>N°fiche CP .....n-fiches SC....|N°fiche CP.... etc</CPtoSC>
</Rel>

Il faut que je recupere les valeurs des chiffres entre les pipes ( " | ")
Il faut savoir aussi que le 1er chiffre correspond à un repertoire (DP) et que les suivants (jusqu au pipe) appartiennent au repertoire (CP) d ou le nom de la balise DPtoCP.

Je n ai absolument aucune idee quant a la manière de procéder...

- a l aide de mon fichier XSL dans lequel je rajoute plein de trucs ?
- en loadant la page en vbs et en la splitant ?

Si kklun a une idee + des pistes de codes je serai preneur et tres reconnaissant
Merci d'avance

6 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je ne sais pas si il existe une facon simple de charger un fichier xml en vbs (ah les joies de vb.net :-p ) mais une fois que tu as recupere :
dim s as string = "825 25 366 35 | 151 15 26 | ... ... | "

dim arrays() as string = s.split(" | ")

for each ss as string in arrays

dim code() as string = ss.split(" ")

next

Ce petit bout de code te permettra d'avoir un tableau de string ( code() )
qui contient : code() = {825,36,366,26}

Attention la variable code a sa porté limité à la boucle For next, elle est effacé à chaque fois que l'on passe sur next

Je sais pas si ce petit bout de code pourra t'aider, j'espere que oui

J'ai ecrit le code en vb.net, mais je pense que tu n'auras pas de mal à le traduire en vbs, la seule difference c'est que je declare toutes les variables et peut etre la position du split ;)

sinon avec des XSL, je connais pas du tout, enfin juste le nom donc je peux pas te conseiller à ce niveau la, mais ca me semble compliqué

j'espere t'avoir aidé, sinon dis le moi

@+

Cyril
Messages postés
4
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004

Bon j ai essayé de transformer ton code .net mais je suis pas sur de mon coup :p :

dim s
dim array()
s = "825 25 366 35 | 151 15 26 | ... ... | "
arrays()= s.split(" | ")

dim ss
for each ss in arrays() //<=== pas sur du tout du tout :)
dim code()
code() = ss.split(" ")
next
response.write(code())

et il m affiche rien biensur
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
lol c'est con que ca n'affiche rien :p
en tout cas a tu compris le code ? convient il a tes besoins ?

Je suis pas sur pour le split, ce serait pas plutot comme ca en vbs :
split(s," | ")

et pour le for each, je crois pas qu'il existe en vbs essaye donc

for i as integer = 1 to sarray.lenght '( pas sur de ca en vbs, mais je pense que tu vois ce que je veux dire)
code() = split(ss, " ")
response.write(code())
i = i + 1
next

Je suis pas sur de mon code, mais en relisant ce que t'as fait j'ai vu plusieurs erreurs :
la premiere dans le nom de ta variable : array et arrays ...
et la deuxieme dans le response.write, il faut le mettre à l'interieur de la boucle for next sinon la variable est remise à zero ...

@+

Cyril
Messages postés
4
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004

C'est bon en fait après maintes reprises j'ai sorti un code qui marche :)

test = xmlDoc.documentElement.childNodes(0).text

tb= split((test), "|")

dim i
for i=0 to ubound(tb)
response.write(tb(i))
Next

Merci pour ton aide :p
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
ok c'est à peu pres ce que je t'ai donné sauf que je pensais que tu voulais aussi separer "825 25 366 35" en tableau {825,25,366,35}
j'ai donc été cherché un peu loin

@+

Cyril
Messages postés
4
Date d'inscription
lundi 12 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2004

Yes mais en fait moi aussi au debut mais avec un seul split il me cree un tableau dans lequel chaque valeur de mes noeuds est séparé ... il me reste plus qu'a travailler sur les valeurs de mon tableu :p