Maison >développement back-end >tutoriel php >Comment puis-je formater correctement la sortie XML à partir de PHP ?
PHP XML : affichage du XML de manière formatée
Cet article aborde le problème du formatage de la sortie XML à partir de PHP. Dans le code fourni, l'impression du XML sur un navigateur a abouti à une sortie aplatie sans indentation ni saut de ligne. Pour résoudre ce problème, nous pouvons utiliser des fonctions PHP pour améliorer le formatage.
La première étape consiste à définir les propriétés PreserveWhiteSpace et formatOutput de l'instance DomDocument :
$doc->preserveWhiteSpace = false; $doc->formatOutput = true;
La définition de PreserveWhiteSpace sur false supprime les excès des espaces dans le XML, tandis que formatOutput demande à PHP de formater le XML en fonction de sa structure.
Alternativement, ces propriétés peuvent être définies lors de la création du DomDocument :
$doc = new DomDocument('1.0'); $doc->preserveWhiteSpace = false; $doc->formatOutput = true;
Le XML formaté s'affichera désormais avec une indentation et des sauts de ligne appropriés :
<?xml version="1.0"?> <root> <error> <a>eee</a> <b>sd</b> <c>df</c> </error> <error> <a>eee</a> <b>sd</b> <c>df</c> </error> <error> <a>eee</a> <b>sd</b> <c>df</c> </error> </root>
Pour une personnalisation supplémentaire, nous pouvons utiliser des expressions régulières pour remplacer les espaces par des tabulations :
$xml_string = preg_replace('/(?:^|\G) /um', "\t", $xml_string);
Enfin, nous pouvons également utiliser l'extension Tidy (si disponible) avec la fonction Tidy_repair_string pour formater le XML :
tidy_repair_string($xml_string, ['input-xml'=> 1, 'indent' => 1, 'wrap' => 0]);
Cette méthode permet un contrôle précis des niveaux d'indentation mais ne produira pas d'indentation de tabulation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!