Lire un fichier XML

Bonjour,

depuis quelques temps je recherche la facon d'extraire une valeure dans un fichier xml
mon fichier est du type:

<probes>
<probe>
<name>Temp</name>
<value>25.0</value>
<type>Temp</type>
</probe>
<probe>
<name>pH</name>
<value>7.75</value>
<type>pH</type>
</probe>
<probe>
<name>Conso</name>
<value>1.1</value>
<type>Amps</type>
</probe>
</probes>
<outlets>
<outlet>
<name>Led_Blanc</name>
<outputID>0</outputID>
<state>AOF</state>
<deviceID>base_Var1</deviceID>
</outlet>
<outlet>
<name>Led_Mixte</name>
<outputID>1</outputID>
<state>Mixte_Lever</state>
<deviceID>base_Var2</deviceID>
</outlet>
<outlet>
<name>Led_Bleu_Uv</name>
<outputID>2</outputID>
<state>Bleu_Lever</state>
<deviceID>base_Var3</deviceID>
</outlet>
<outlet>
<name>Ventirad</name>
<outputID>3</outputID>
<state>TBL</state>
<deviceID>base_Var4</deviceID>
</outlet>

et je voudrais extraire l'etat state du ventirad
Ventirad
3
TBL

j'ai testé ce code qui fonctionne bien pour les premières lignes mais je n'arrive pas a l'adapter pour mon fichier

    if(client.available()) { // Si des données sont disponible sur l'objet EthernetClient
     
      c = client.read();     // Lecture d'un octet
      if(c == '\n') {        // Si fin de ligne atteinte
       
        // (Pensez à mettre une ligne vide à la fin de flux.xml)
        if(str.startsWith("<action>")) { // Si la ligne commence par <action>
         
          Serial.println(str);
          str.replace("<action>", "");   // 
          str.replace("</action>", "");  // Enlève les balises XML
 
          if(str == "on") // Si le flux contient "1" on allume la LED
          {
            digitalWrite(ledPin, HIGH);   // Allume la LED
            delay(1000);                  // Attend une seconde
          } 
          else if(str == "off") // Si le flux contient "2" on éteint la LED
          {
            digitalWrite(ledPin, LOW);   // Éteint la LED
            delay(1000);                   // Attend une seconde
          }
          // Si le flux contient autre chose il y a un un problème, on fait rien ... 
 
          break;  // Sort de la boucle infini
        } 
 
        str = ""; // Vidage de la ligne
      } 
      else
        str += c; // Concaténation de l'octet reçu dans la chaîne de char
    }
 
    if(!client.connected()) // Si la connexion a été perdu
      break;                // Sorti de la boucle infini
  }
 
  client.stop(); // Fermeture de la connexion avec le serveur
}

merci pour votre aide

@++

fred