Page 1 sur 1

caractères spéciaux et saut de ligne non pris en compte

Posté : 10 juil. 2012, 14:34
par mourad.bilog
Bonjour tout le monde, le code suivant
<?php
	require_once MONO_SITE_PATH."data/compo_data.php";
 
	// inialisation de l'objet DOMDocument de php.
	$objetDom = new DOMDocument('1.0', "UTF-8");
	$objetDom->formatOutput = TRUE;
 
	$formeCompos = createXml($objetDom,'FormePharmaceutiqueComposition','');
	$formepharm = createXml($objetDom,'FormePharmaceutique',$formeCompos);
 
	// récupérer données
	$txt_form_arr = get_txt_form(3920);
 
	//affichage texte forme 
	if(!is_null($txt_form_arr['txt_form']))
		createXml($objetDom,'TexteForme',$formepharm, utf8_encode($txt_form_arr['txt_form']));	
 
	// fonction de création noeud du fichier XML
	function createXml($objetDom,$balise,$parent,$text_balise)
	{
		//création de l'élement 
		$element = $objetDom->createElement($balise);
 
		//si le parent n'est pas renseigner on parle de neoud principale
		if (empty($parent))
			$element = $objetDom->appendChild($element);
		else
			$element = $parent->appendChild($element);
 
		//affecter le texte pour le noued 
		$text = $objetDom->createTextNode($text_balise);
		$text = $element->appendChild($text);
 
		return $element;
	}
 
	// sauvegarde du contenu xml dans le fichier
	objetDom->save(MONO_SITE_PATH."Compo.xml");
?>
récupére des données depuis la base de données et les insère dans un fichier XML.
Le fichier XML est généré mais j'ai constaté que son formatage n'est pas correct. Les 2 problèmes rencontrés sont :
1. Absence de l'indentation
2. La non prise en compte des sauts de lignes.
Le résultat obtenu est :
[xml]<?xml version="1.0" encoding="UTF-8"?>
<FormePharmaceutiqueComposition><FormePharmaceutique><TexteForme>Gélule.&#13;
&#13;
Gélule blanche et rouge.&#13;
&#13;
Calibrage : n°0.</TexteForme></FormePharmaceutique></FormePharmaceutiqueComposition>
[/xml]
J'ai vraiment essayé plusieurs alternatives par exemple la classe Beautifier de PEAR ou une classe de formatage de code XML mais le résultat est toujours incompatible avec celui escompté.
Est ce que quelqu'un pourrait m'éclaircir sur ce sujet et pourra me donner des pistes de solutions.
Merci d'avance pour votre aide.
Bien cordialement.

Re: caractères spéciaux et saut de ligne non pris en compte

Posté : 14 juil. 2012, 23:19
par momox
En cherchant "php domdocument indent" sur Google, j'ai trouvé quelques réponses.