IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM] Regrouper des balises "soeurs" qui ont le même argument


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut [DOM] Regrouper des balises "soeurs" qui ont le même argument
    Bonjour 'a tous,
    j'ai un message comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <balise0>
    <balise2>
      <balise1>   
        <balise3>    
          <balise4>1</balise4>   
          <balise5>SV</balise5>   
        </balise3>   
      </balise1>    
      <balise1>    
        <balise3>    
          <balise4>0</balise4>   
          <balise5>TV</balise5>    
        </balise3>    
      </balise1>   
      <balise6>  
        <balise7>ETA</balise7>  
      </balise6>
      <balise12>   
        <balise8>   
          <balise9>TP</balise9>   
        </balise8>    
        <balise10>  
          <balise11>239</balise11>  
        </balise10>   
      </balise12> 
    </balise2>
    </balise0>
    que je mappe avec sa structure, voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    <?php
     
    $docStruct = new DomDocument;
    $docStruct->formatOutput = true;
    $docStruct->preserveWhiteSpace=false;
    $docStruct->load('docStruct.xml');
     
     
     
    $xpathS = new DOMXpath($docStruct);	
     
    $docEx = new DomDocument;
    $docEx->formatOutput = true;
    $docEx->preserveWhiteSpace=false;
    $docEx->load('docEx.xml');
    $xpathE = new DOMXpath($docEx);
     
     
    $interface=$docStruct->getElementsByTagName('INTERFACE');
    $arbre = $interface->item(0);		
     
    $Smessages = $docStruct->getElementsByTagName('MESSAGE');
    global $Smessage;
    $Emessages = $docEx->getElementsByTagName('message');
    echo pars_message('STRUCTfinal2.html');
     
     
    function result_pars_message(){
    	$resultat = '';
    	global $interface, $Smessage, $Emessages, $tree;
    	foreach ($interface as $tree) {
    		$tmp=$Smessage->getAttribute('TAG');
     
    		$result_pars=child_pars($Smessage, $Emessages->item(0));
    		$resultat= '<html><link rel="stylesheet" type="text/css" href="style.css" /><body><h2>Message:'.$Smessage->getAttribute('TAG').'</h2><p class="message_desc">'.$Smessage->getAttribute('NAME').'</p>'.$result_pars."</body></html>";
     
    	return $resultat;
    	}
    }
     
    function pars_message($document2){
    	global $interface, $Emessages, $Smessages, $Smessage ;
    	foreach ($Smessages as $Smessage) {	
    		if ($Smessage->getAttribute('TAG')==$Emessages->item(0)->getAttribute('type') && $Smessage->getAttribute('VERSION')==$Emessages->item(0)->getAttribute('version') && $Smessage->getAttribute('RELEASE')==$Emessages->item(0)->getAttribute('release')){	
    			$resultat=result_pars_message();
    			$docStruct2 = new DomDocument;
    			$handle = fopen($document2, 'w');
    			fwrite($handle, $resultat);
    			fclose($handle);
    			//echo $resultat;
    			/*if (!@$docStruct2->load($resultat)){
    				return FALSE;
    			}*/
    			@$docStruct2->load($resultat);    //transformer le string resultat en object comme document_xml pour pouvoir le sauver
    			return $resultat;
    		}
    	}
    }
     
     
     
    function child_pars($Snoeud, $Enoeud){	// Fonction de parsage d'enfants	// Si elle n'a pas encore ete declaree (c'est la premiere balise), on initialise $accumulation
    	global $tree, $Smessage;
     
    	if($Snoeud->hasChildNodes() && $Snoeud->nodeName!="DATA" && $Enoeud->hasChildNodes()){
    		$Senfants_niv1 = $Snoeud->childNodes; 							// Les enfants du nœud traité		
    		$Eenfants_niv1 = $Enoeud->childNodes;
    		foreach($Eenfants_niv1 as $Eenfant){
    			foreach($Senfants_niv1 as $Senfant){ 							// Pour chaque enfant, on vérifie…
    				if($Eenfant->nodeName==$Senfant->getAttribute('SMARTNAME')){ 	//appartient bien 'a docEx
    					if(!isset($accumulation)) {$accumulation = '';}
    					if($Senfant->hasChildNodes() == true && $Senfant->nodeName!="CODESETS"){ 				// …s'il a lui-même des enfants
    						$accumulation .= child_pars($Senfant, $Eenfant); 	
    					}
    					elseif ($Senfant->nodeName=="SEGMENTREF"){
    						$newNode=traitement_segmentref($Senfant, $Eenfant);
    						$accumulation .=  child_pars($newNode, $Eenfant);
    					}
    					elseif ($Senfant->nodeName=="COMPOSITEREF"){
    						$newNode=traitement_compositeref($Senfant, $Eenfant);
    						$accumulation .= child_pars($newNode, $Eenfant);
    					}
    					elseif ($Senfant->nodeName=="GROUPREF"){
    						$newNode=traitement_groupref($Senfant, $Eenfant);
    						$accumulation .= child_pars($newNode, $Eenfant);
    					}
     
    					else {
    						echo " simplePars(accumulation)", $Senfant->nodeName;
    						$accumulation .= "[".simple_pars($tree, $Senfant, $Eenfant)."]";
    					} 
     
    				}
    			}
    		}
    	}
    	if(!isset($accumulation)){
    		return simple_pars($Snoeud, $Enoeud);
    	}
    	$tmp=simple_pars($Snoeud, $Enoeud, $accumulation);
    	if($tmp==''){
    		return $accumulation;
    	}
     
     
    //	if ($Snoeud==$Smessage) {
    	//echo "[", simple_pars($Snoeud, $Enoeud, $accumulation), "]"; 
    //	}
    	return simple_pars($Snoeud, $Enoeud, $accumulation);  			// accumulation est le resultat du parsage de tous les noeuds: le html se forme
    }
     
    function traitement_segmentref($Senfant){
    	global $tree;
    	$TREE=$tree->childNodes;
    	foreach ($TREE as $arbreSegments) {
    		if ($arbreSegments->nodeName=="SEGMENTS"){
    			$newNode=search_id($Senfant->getAttribute('ID'), $arbreSegments); //arbreSegments est bien un noeud
    		}
    	}
    	return $newNode;
    }
     
     
    function traitement_compositeref($Senfant){
    	global $tree;
    	$TREE=$tree->childNodes;
    	foreach ($TREE as $arbreComposites) {
    		if ($arbreComposites->nodeName=="COMPOSITES"){
    			$newNode=search_id($Senfant->getAttribute('ID'), $arbreComposites); //arbreSegments est bien un noeud
    		}
    	}
    	return $newNode;
    }
     
    function traitement_groupref($Senfant){
    	global $tree;
    	$TREE=$tree->childNodes;
    	foreach ($TREE as $arbreGroups) {
    		if ($arbreGroups->nodeName=="GROUPS"){
    			$newNode=search_id($Senfant->getAttribute('ID'), $arbreGroups); //arbreSegments est bien un noeud
    		}
    	}
    	return $newNode;
    }
     
     
    function search_id($id, $noeud){ 
    	$fils=$noeud->childNodes;
    	foreach ($fils as $enfant){
    		if ($enfant->getAttribute('ID')==$id){
    			return ($enfant);
    		}
    	}
    	return NULL; // au cas ou, si on ne retrouve pas le segment avec le bon id
    }
     
     
    function traitement_data($Snoeud, $Enoeud){
    	if ($Snoeud->hasChildNodes()==true){
    		$codesets = $Snoeud->childNodes; 
    		foreach ($codesets as $codes){
    			if ($codes->nodeName=="CODESETS"){
    				$codeS = $codes->childNodes; 
    				foreach ($codeS as $codeset){
    					if ($codeset->nodeName=="CODESET"){
    						if ($codeset->attributes->getNamedItem('TAG')->nodeValue == $Enoeud->nodeValue){
    							return $contenu=("<p class='data'>".$Snoeud->attributes->getNamedItem('DESCRIPTION')->nodeValue." : ".$Enoeud->nodeValue." ( ".$codeset->attributes->getNamedItem('DESCRIPTION')->nodeValue.")</p><BR>");
    						}
    					}
    				}
    			}
    		}
    	}
    }
     
     
    function simple_pars($Snoeud, $Enoeud, $content_to_insert='') {
    	$balise_1 = array('SEGMENT' => '<div class="segment"><p class="segment_smartname">"$1"</p><p class="segment_description">"$2" ,"$3" </p>',
    						'COMPOSITE' => '<div class="composite"><p class="composite_smartname">"$1"</p><p class="composite_description">"$2", "$3"</p>',
    						'GROUP' => '<div class="group"><div class="group_descr"><p class="group_smartname">$1</p><p class="group_description">"$2" , "$3" </p>',
    						'DATA' => '<div class="data"><p class="DATA_smartname">$1</p><p class="group_description">"$2" , "$3" </p>',
    						'#text' => '');
     
     
    	$balise_2 = array('SEGMENT' => '</div><br>',
    						'COMPOSITE' => '</div><br>',
    						'GROUP' => '</div><br>',
    						'#text' => ''); 								// Tableau des balises fermantes
     
    	$attributs = array('SEGMENT' => 'DESCRIPTION',
    						'GROUP' => 'DESCRIPTION',
    						'COMPOSITE' => 'DESCRIPTION'
    						); 	
     
     
    	if(!empty($content_to_insert)){ 										//On détermine si on veut spécifier du contenu préparsé
    		if(!isset($contenu)) $contenu = $content_to_insert; 									// Si c'est le cas, on met la variable de fonction en contenu
    	}
     
    	elseif(!isset($contenu)){
    		$contenu = $Enoeud->nodeValue;
    	}
     
    	if ($Snoeud->nodeName=="DATA") {
    		$intermediaire=$contenu=traitement_data($Snoeud, $Enoeud);
    	}
     
    	elseif ($Snoeud->nodeName=="SEGMENT" || $Snoeud->nodeName=="COMPOSITE" || $Snoeud->nodeName=="GROUP" ){ 											
    		$first_tag = $balise_1[$Snoeud->nodeName];     								// Première balise (ouvrante)
     
    		if($Snoeud->hasAttributes()){ // On remplace les attributs (sauf pour les images) // hasAttributes:domNode. hasAttribute:domElement
    				if ($Snoeud->hasAttribute('FUNCTION')){
    					$FUNCTION = $Snoeud->attributes->getNamedItem('FUNCTION')->nodeValue;// Récupération de la valeur de l'attribut
    				}
    				elseif($Snoeud->hasAttribute('TYPENAME')){
    					$FUNCTION = $Snoeud->attributes->getNamedItem('TYPENAME')->nodeValue; 
    				}
    				if ($Snoeud->hasAttribute('NAME')){
    					$NAME = $Snoeud->attributes->getNamedItem('NAME')->nodeValue; 
    				}
    				elseif ($Snoeud->hasAttribute('SMARTNAME')){
    					$NAME = $Snoeud->attributes->getNamedItem('SMARTNAME')->nodeValue; 
    				}
    				if ($Snoeud->hasAttribute('MEANING')){
    					$MEANING = $Snoeud->attributes->getNamedItem('MEANING')->nodeValue; 
    				}
    				elseif ($Snoeud->hasAttribute('DESCRIPTION')){
    					$MEANING = $Snoeud->attributes->getNamedItem('DESCRIPTION')->nodeValue; 
    				}
    				if ($NAME){				// On remplace la valeur $NAME par celle de l'attribut 
    					$first_tag = str_replace("$1", $NAME, $first_tag); 
    				}
    				if ($FUNCTION){	
    					$first_tag = str_replace("$2", $FUNCTION, $first_tag); 
    				}
    				$first_tag = str_replace("$3", $MEANING, $first_tag); 
    			}
    		$intermediaire = $first_tag . $contenu . $balise_2[$Snoeud->nodeName]; 		// On assemble le tout
    	}
     
    	if(!isset($intermediaire)) $intermediaire ='';
    	return $intermediaire; // On renvoie le texte parsé
    }
     
     
    ?>
    mais comme vous le voyez dans mon message, j'ai parfois les memes balises. par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <balise1>   
        <balise3>    
          <balise4>1</balise4>   
          <balise5>SV</balise5>   
        </balise3>   
      </balise1>    
      <balise1>    
        <balise3>    
          <balise4>0</balise4>   
          <balise5>TV</balise5>    
        </balise3>    
      </balise1>
    et l'affichage nous donne deux fois la meme balise version avec 'a l'interieur 2 la meme balise idsection...
    ce que j'aimerais c'est regrouper ces deux balises et avoir dans on affichage quelque chose du type (tableau)

    versionNumber ------- referenceQualifier
    1 -------------------- SV
    0 -------------------- TV

    est ce que cela semble facilement faisable et imbricable dans un code deja gros? je me suis un peu perdue dedans et je ne vois plus vraiment..

  2. #2
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    en fait ce que j'aimerais c'est dire "j'ai la nodelist comportant tous ces noeuds.
    si deux noeuds ont les meme arguments, je les regroupe et 'a l'interieur je mets les deux contenus"

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    J'ai lu tes explications et tenté de dépieuter ton code mais je n'y ai rien compris.
    Il faut reprendre le problème avec un exmple concret parce que sinon ça risque d'être difficile. Mets un échantillon de tes fichiers : docStruct.xml, docEx.xml, STRUCTfinal2.html et explique comme à un enfant (areu) ce que tu veux en faire.

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    Oui, desolee en fait j'avais fait un autre topic mais comme le projet part un peu dans tous les sens je me disais que j'allais m'en tenir 'a une question simple
    alors deja, dans mon code plusieurs variables commencent par $S ou $E.
    S signifie que la variable est un noued du fichier structure, docStruct.xml, qui ressemble 'a ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <MESSAGES>
    	<MESSAGE TAG="TATA">
    		<GROUP SMARTNAME="balise1" DESCRIPTION="blabla">
    			<SEGMENTREF SMARTNAME="balise17" id="56"/>
    		</GROUP>
    	</MESSAGE>
    	<MESSAGE TAG="OPOP">
    		<GROUP SMARTNAME="balise1" DESCRIPTION="blabla">
    			<SEGMENTREF SMARTNAME="balise3" id="123"/>
    		</GROUP>
    		<GROUP SMARTNAME="balise56" DESCRIPTION="...">
    			<SEGMENTREF SMARTNAME="balise3" id="51"/>
    		</GROUP>
    	</MESSAGE>
    </MESSAGES>
     
    <SEGMENTS>
    	<SEGMENT id="123">
    		<DATA SMARTNAME="balise4" DESCRIPTION="blabla2">
    		</DATA>
    		<DATA SMARTNAME="balise5" DESCRIPTION="blabla3">
    			<CODESETS>
    				<CODESET TAG="OP" DESCRIPTION="blabla4">
    				<CODESET TAG="TV" DESCRIPTION="blabla5">
    			<CODESETS>
    		</DATA>
    	</SEGMENT>
    </SEGMENTS>
    j'en ai mis une petite partie parce que c'est des tres gros fichiers, plusieurs milliers de lignes. mais en gros c'est ca: je pars de ce premier fichier, ici on voit que
    j'ai deux messages et je dois trouver le bon. je regarde dans le 2eme fichier docEx (juste en dessous): c'est le message OPOP qui m'interesse.
    je continue donc 'a parcourir OPOP.
    dedans j'ai le groupe balise1, qui se trouve bien dans docEx.xml. je continue donc, je tombe sur SEGMENTREF, qui est une reference et balise3 se trouve bien dans docEx.
    je vais donc dans <SEGMENTS> et j'y cherche le segment au meme id: 123. et je parcours ce nouveau noeud.

    et E correspond 'a exemple, docEx.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <message tag="opop">
    <balise2>
      <balise1>   
        <balise3>    
          <balise4>1</balise4>   
          <balise5>SV</balise5>   
        </balise3>   
      </balise1>    
      <balise1>    
        <balise3>    
          <balise4>0</balise4>   
          <balise7>TV</balise7>    
        </balise3>    
      </balise1>   
      <balise6>  
        <balise7>ETA</balise7>  
      </balise6>
      <balise12>   
        <balise8>   
          <balise9>TP</balise9>   
        </balise8>    
        <balise10>  
          <balise11>239</balise11>  
        </balise10>   
      </balise12> 
    </balise2>
    </message>
    tout ce parcours est fait dans child_pars. donc en fait ce que je fais c'est 2foreach :foreach Enoeud de docEx{foreach Snoeud de docStruct{if Enoeud==Snoeud{...}}}

    ce que j'aimerais c'est dire, "si deux noeuds de mon foreach sont egaux (par exemple ici j'ai deux fois balise1) alors je les fusionne en un uniaue noeud et leurs deux contenus deviennent deux fils de ce noeud"

    voila, j'espere que c'est un peu plus clair cette fois!

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    j'ai regardé ton algo de recherche et je dois avouer que c'est sacrément confus. Tu fais des foreach partout et sur tout !
    J'ai l'impression que tu cherche à éviter l'utilisation de DOMXPath. La conséquence directe est l'usine à gaz que tu as construite.
    Reprends posément ton algo en utilisant l'outil prévu pour ce genre d'extraction : DOMXPath.
    Afin d'arriver vers quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
     
    // chargement des documents de travail
    $ex_doc = new DomDocument;
    $ex_doc->formatOutput = true;
    $ex_doc->preserveWhiteSpace = false;
    $ex_doc->load('docEx.xml');
     
    $struct_doc = new DomDocument;
    $struct_doc->formatOutput = true;
    $struct_doc->preserveWhiteSpace = false;
    $struct_doc->load('docStruct.xml');
     
    // recherche des messages correspondants
    $ex_msgs = $ex_doc->getElementsByTagName('message');
    $struct_xpath = new DOMXPath($struct_doc);
    foreach($ex_msgs as $ex_msg) {
       $elements = $struct_xpath->query("//MESSAGES/MESSAGE[@TAG=$ex_msg]");
       foreach($elements as $element) {
          ...
       }
    }

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Points : 65
    Points
    65
    Par défaut
    Merci, je vais changer ca!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2011, 17h41
  2. [XSLT] Regrouper des balises pour hiérarchiser
    Par 922374 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/09/2009, 10h42
  3. [XL-2003] supprimer des lignes qui ont les même valeurs
    Par Neptune64 dans le forum Excel
    Réponses: 1
    Dernier message: 09/08/2009, 00h30
  4. [SP-2007] Récuperation des sites qui ont le même template
    Par grafaa dans le forum SharePoint
    Réponses: 3
    Dernier message: 01/07/2009, 11h13
  5. [DOM] Supprimer des balise avec dom
    Par Shandler dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 04/06/2006, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo