xml.class.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. class xml{
  3. public static function print(string $_string){
  4. // Utiliser DOMDocument pour rendre le XML lisible
  5. $dom = new DOMDocument();
  6. $dom->preserveWhiteSpace = false;
  7. $dom->formatOutput = true;
  8. $dom->loadXML($_string);
  9. // Obtenir le XML formaté
  10. $formatted_xml = htmlspecialchars($dom->saveXML());
  11. // Affichage du XML formaté avec du style CSS pour colorer les éléments XML
  12. header('Content-Type: text/html; charset=UTF-8');
  13. echo "<html><head><title>Visualisation XML avec couleurs</title>";
  14. // Ajouter du CSS pour colorer les éléments XML et gérer l'enroulement
  15. echo "
  16. <style>
  17. pre {
  18. font-family: 'Courier New', Courier, monospace;
  19. background-color: #f4f4f4;
  20. padding: 15px;
  21. border: 1px solid #ddd;
  22. white-space: pre-wrap; /* Permet l'enroulement du texte */
  23. word-wrap: break-word; /* Force l'enroulement sur les longs mots */
  24. overflow-wrap: break-word; /* Gère les débordements du texte */
  25. }
  26. .tag { color: #007700; } /* Couleur des balises */
  27. .attribute { color: #0000ff; } /* Couleur des attributs */
  28. .value { color: #dd0000; } /* Couleur des valeurs d'attribut */
  29. </style>
  30. ";
  31. echo "</head><body>";
  32. echo "<h1>Visualisation du fichier XML avec code couleur</h1>";
  33. // Remplacer les éléments pour les colorier avec du CSS
  34. $formatted_xml = preg_replace('/(&lt;\/?)(\w+)(.*?&gt;)/', '<span class="tag">$1$2</span>$3', $formatted_xml);
  35. $formatted_xml = preg_replace('/(\w+)="(.*?)"/', '<span class="attribute">$1</span>="<span class="value">$2</span>"', $formatted_xml);
  36. // Afficher le XML formaté et coloré
  37. echo "<pre>" . $formatted_xml . "</pre>";
  38. echo "</body></html>";
  39. }
  40. }