Bonjour tout le monde, le code suivant
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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.
En fait, le résultat que j'obtient est le suivant :
Code :
1
2
3
4
5
6
<?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>
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.