Maison > développement back-end > tutoriel php > Comment puis-je formater correctement la sortie XML à partir de PHP ?

Comment puis-je formater correctement la sortie XML à partir de PHP ?

Susan Sarandon
Libérer: 2024-11-25 02:01:18
original
701 Les gens l'ont consulté

How Can I Properly Format XML Output from 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;
Copier après la connexion

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;
Copier après la connexion

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>
Copier après la connexion

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);
Copier après la connexion

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]);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal