WiShield & find() function

You're right i should not be looking for a token ending at < .
And yes i want to get what is inside of "" and > <.

a cleaner code, where i manage to find r :

void printData(char* data, int len) {
  
  /*while (len-- > 0) { 
      Serial.println(data);
  }*/
  
  char * spanstring = "span";
  resultat = strstr(data, spanstring); // find the string "span" within data
  
  if (resultat != NULL){               // if there is a result (resultat)
    Serial.println();
    Serial.print("resultat: [");
    Serial.print(resultat);
    Serial.println("]");
  
    char * tokenstringone = "\"";      // get the token ending at " (resultattwo should be: [span id=])
    resultattwo = strtok(resultat, tokenstringone);
    Serial.print("resultattwo: [");
    Serial.print(resultattwo);
    Serial.println("]");
    
    resultatthree = strtok(NULL, tokenstringone); // get the next token ending at "  (resultatthree should be: [r])
    Serial.print("resultatthree: [");
    Serial.print(resultatthree) ;
    Serial.println("]");
  }
  else if (resultat == NULL){
    Serial.println("no span found");
  }
}

result:

resultat: [span id="r">145
100
54
</b]
resultattwo: [span id=]
resultatthree: [r]

resultat: [span id=]
resultattwo: [span id=]
resultatthree: [É]

resultat: [span id=]
resultattwo: [span id=]
resultatthree: [É]

I dont understand why resultat changes though