Bonjour tous ,
voici une fonction consistant à parser un document xml afin de retrouver des informations puis de les afficher .
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
function voir-repos ($type)
{
$documentXML = [System.Xml.XmlDocument] (get-content ".\Calendrier2010.xml")
$liste_mois = $documentXML.GetElementsByTagName( "mois" )
$liste_mois | % { $nom_du_mois=([string] $_.innerText).split();$liste_jours = $_.GetElementsByTagName( "jour" );
switch ( $liste_jours ) {
	{!( $_.$type -eq  $null ) } {
		$jour=$_;$numero_du_jour=$jour.numero
		if( $jour.$type.HasAttributes ) {
			$liste_attributs=$jour.$type.Attributes
			if ( $liste_attributs.ItemOf( "demi" ) ) { 
				if($liste_attributs.ItemOf( "h" ) -or $liste_attributs.ItemOf( "m" )) {
					"ERREUR : $numero_du_jour $nom_du_mois [ambigue]"}
				else {"1/2 $type le $numero_du_jour $nom_du_mois" }
								 }
			else { $h=$liste_attributs.ItemOf( "h" );$m=$liste_attributs.ItemOf( "m" )
				if([int]$h.value) {if([int]$m.value) {"$($h.value)h$($m.value)mn le $numero_du_jour $nom_du_mois" }
					else {"$($h.value)h le $numero_du_jour $nom_du_mois" }
					}
				elseif([int]$m.value) {"$($m.value)mn le $numero_du_jour $nom_du_mois" }
				else {"ERREUR : $numero_du_jour $nom_du_mois [non renseigné]"}
						}
				}
		else { "$type le $numero_du_jour $nom_du_mois" }
				    }
			}
		}
}
Je suis assez content de moi
malgré tout je sens que cela pourrait être optimisé ...
comment ?