Existe-t-il un moyen d'augmenter la taille d'indentation de la propriété DOMDocument formatOutput de PHP? En ce moment, il indent chaque nœud 2 espaces. Je voudrais en faire un onglet ou 4 espaces.Existe-t-il un moyen d'augmenter la taille d'indentation de la propriété DOMDocument formatOutput de PHP?
Répondre
Il peut être possible de modifier la chaîne d'indentation dans libxml, mais à ma connaissance vous ne pouvez pas modifier l'indentation DOM utilise. C'est possible pour XMLWriter cependant.
Comme alternative, vous pouvez utiliser Tidy prettyPrint XML:
$dom = new DOMDocument;
$dom->preserveWhiteSpace = TRUE;
$dom->loadXml('<root><foo><bar> baz </bar></foo></root>');
$tidy = tidy_parse_string($dom->saveXml(), array(
'indent' => TRUE,
'input-xml' => TRUE,
'output-xml' => TRUE,
'add-xml-space' => FALSE,
'indent-spaces' => 4
));
$tidy->cleanRepair();
echo $tidy;
mais notez que ce comportement bizarre dans le cas ci-dessus. Il supprime les espaces dans l'élément barre sauf si vous frappez un xml:space="preserve"
sur l'étiquette de la barre. Quand vous faites cela, il va garder les espaces, mais aussi mettre les nouvelles lignes avant et après. Vous devez jouer avec pour voir si cela correspond à votre problème. Voir Tidy docs
Ce n'est pas une solution très agréable car il dépend de la connaissance que le format est préfixé avec double espaces:
preg_replace_callback('/^(+)</m', function($a) {
return str_repeat(' ',intval(strlen($a[1])/2) * 4).'<';
}, $doc->saveXML());
Il remplace chaque empreinte avec 4 espaces. Ou vous pouvez supprimer le *4
et utiliser "\n"
comme caractère répétitif.
Merci! C'est exactement ce dont j'avais besoin pour changer le retrait de 2 espaces en tabulations, j'ai changé le retour en ceci: 'return str_repeat (" \ t ", intval (strlen ($ a [1])/2)). '<'; – Kus
- 1. Formatage de la sortie en fichier avec PHP DOMDocument
- 2. Problèmes de création de code XML avec DOMDocument en PHP
- 3. XML mal formé lors de la génération de RSS avec PHP DOMDocument
- 4. un moyen de définir la taille de mon UIViewController
- 5. encodage PHP avec DOMDocument
- 6. Problème d'analyse XML avec $ xml-> formatOutPut
- 7. DOMDocument parsage (php)
- 8. Php DOMDocument Htmlentities problème
- 9. PHP Augmenter l'indentation de DOMDocument-> saveXML?
- 10. méthode d'extension comme un moyen de renommer la propriété
- 11. rss parsing DOMDocument en PHP
- 12. PHP DOMDocument, recherche d'éléments spécifiques
- 13. PHP rend la propriété de classe héritable
- 14. PHP HTML DomDocument Problèmes getElementById
- 15. PHP DomDocument, problème d'encodage DomXPath
- 16. PHP DOMDocument remplace l'enfant DOMElement par la chaîne HTML
- 17. Impossible d'obtenir nodeValue en utilisant la classe DOMDocument en PHP
- 18. PHP DomDocument Chargement XML avec des données XML rompues
- 19. Existe-t-il un moyen de faire la validation XSD d'un flux XML en PHP?
- 20. php domdocument: quand je crée un XML, comment puis-je identifier chaque élément correctement?
- 21. téléchargement de la taille
- 22. AS3 un moyen d'obtenir la taille actuelle TextField?
- 23. php: obtenir la taille tmp
- 24. Quel est un bon moyen d'obtenir la taille du fichier?
- 25. Existe-t-il un moyen d'introspecter la taille d'un tableau?
- 26. Un moyen facile d'obtenir la taille du dossier (ObjC/Cocoa)?
- 27. Taille de la strings
- 28. Format Document XML créé avec PHP - DomDocument
- 29. Y at-il un moyen d'obtenir la taille d'une variable PHP en octets?
- 30. PHP DOMDocument: Comment obtenir directement noeud childrens
Y a-t-il un moyen de changer cela quelque part dans un fichier de configuration? Il ne doit pas être à l'exécution. – ThinkingInBits
@Thinking À ma connaissance, il n'y a aucun moyen de configurer cela à partir de PHP. – Gordon