2010-01-06 7 views
10

J'essaye de formater visuellement l'apparence de mon fichier XML lorsqu'il est sorti. En ce moment, si vous allez here et voir la source, vous verrez à quoi ressemble le fichier.Format Document XML créé avec PHP - DomDocument

Le PHP je qui crée le fichier est: (Note, links_array de $ est un tableau de urls)

 header('Content-Type: text/xml'); 
     $sitemap = new DOMDocument; 

     // create root element 
     $root = $sitemap->createElement("urlset"); 
     $sitemap->appendChild($root); 

     $root_attr = $sitemap->createAttribute('xmlns'); 
     $root->appendChild($root_attr); 

     $root_attr_text = $sitemap->createTextNode('http://www.sitemaps.org/schemas/sitemap/0.9'); 
     $root_attr->appendChild($root_attr_text); 



     foreach($links_array as $http_url){ 

       // create child element 
       $url = $sitemap->createElement("url"); 
       $root->appendChild($url); 

       $loc = $sitemap->createElement("loc"); 
       $lastmod = $sitemap->createElement("lastmod"); 
       $changefreq = $sitemap->createElement("changefreq"); 

       $url->appendChild($loc); 
       $url_text = $sitemap->createTextNode($http_url); 
       $loc->appendChild($url_text); 

       $url->appendChild($lastmod); 
       $lastmod_text = $sitemap->createTextNode(date("Y-m-d")); 
       $lastmod->appendChild($lastmod_text); 

       $url->appendChild($changefreq); 
       $changefreq_text = $sitemap->createTextNode("weekly"); 
       $changefreq->appendChild($changefreq_text); 

     } 

     $file = "sitemap.xml"; 
     $fh = fopen($file, 'w') or die("Can't open the sitemap file."); 
     fwrite($fh, $sitemap->saveXML()); 
     fclose($fh); 
    } 

Comme vous pouvez le dire en regardant la source, le fichier est aussi lisible que Je voudrais que ce soit. Y a-t-il un moyen pour moi de formater les nœuds?

Merci,
Levi

+0

Vous pouvez ajouter un en-tête XML et l'ouvrir dans FireFox. Cela montrera une belle version formatée de votre document xml –

Répondre

9

Contrôlez le paramètre formatOutput dans DOMDocument.

$sitemap->formatOutput = true 
+1

C'est exactement ce que je cherchais. Je vous remercie! – Levi

0

pas seulement PHP, il y a une feuille de style XML: XSLT, qui peut mettre en forme XML en STH semble bon.

+0

Ah ok, j'ai déjà fait quelques feuilles de style XSLT de base. J'espérais qu'il y avait un moyen de mettre au moins des sauts de ligne après la création d'un noeud avec PHP. – Levi

+0

réponse from above formatOutput faire le travail? votre question semble mal diriger de cette façon .... – joetsuihk

Questions connexes