Bonjour,

J'ai un code Xhtml de la forme :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<html>
<body>
<toto:addition b="5" a="7"/>
 
<toto:hello_world  name="people"/>
</body>
</html>

Ce que j'aimerai faire, c'est une fonction qui parse le contenu Xhtml de la page.
Lorsqu'il rencontre un tag de la forme <totoxx /> il exécute la fonction xxx( ). Il remplace le tag par ce que retourne la fonction. Si le tag <totoxx /> posséde des attributs alors, on a un tableau associatif de la forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
tab['param1']='valeur1';
tab['param2']='valeur2';
ILLUSTRATION :

- Avec : <toto:hello_world name="Mr. Bob"/>

On fait appelle a la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
function hello_world(args){
 
    var default = new Array();
 
    default['name'] = '';
 
    extract(array_merge(default,args));
 
    if(name=='') name = 'world';
 
    return 'Hello '+name+' !';
 
}
Conclusion : Ce tag <toto:hello_world name="Mr. Bob"/> sera remplacé par
"Hello Mr. Bob !

Avec le tag : <toto:addition b="5" a="7"/>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
function addition(args){
 
    var default = new Array();
 
    default['a'] = 0;
    default['b'] = 0;
 
    extract(array_merge(default,args));
 
    return a+b;
}
Conclusion ce tag : <toto:addition b="5" a="7"/> sera remplacé par 12
ce tag : <toto:addition a="7" b="5"/> sera remplacé par 12
ce tag : <toto:addition b="5"/> sera remplacé par 5 (car a n'étant pas définit on prendra la valeur par défaut à savoir 0).