2010-01-06 7 views
10

Ich versuche visuell zu formatieren, wie meine XML-Datei aussieht, wenn es ausgegeben wird. Wenn Sie jetzt here gehen und die Quelle anzeigen, sehen Sie, wie die Datei aussieht.Format XML-Dokument erstellt mit PHP - DomDocument

Die PHP Ich habe, dass die Datei erstellt ist: (Beachten Sie, $ links_array eine Reihe von Urls ist)

 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); 
    } 

Wie Sie durch einen Blick auf die Quelle sagen kann, wird die Datei nicht so lesbar wie Ich würde es gerne haben. Gibt es eine Möglichkeit für mich, die Knoten zu formatieren?

Danke,
Levi

+0

Sie können einen XML-Header hinzufügen und in FireFox öffnen. Dies zeigt eine schöne formatierte Version von Ihrem XML-Dokument –

Antwort

9

Überprüfen Sie die formatOutput Einstellung in DOMDocument.

$sitemap->formatOutput = true 
+1

Das ist genau das, was ich gesucht habe. Vielen Dank! – Levi

0

nicht nur PHP, ein Stylesheet es für XML ist: XSLT, die XML-Daten in etw formatieren sieht gut aus.

+0

Ah ok, ich habe ein paar grundlegende XSLT Stylesheets gemacht. Ich hatte gehofft, dass es einen Weg gibt, Zeilenumbrüche zu machen, nachdem ein Knoten mit PHP erstellt wurde. – Levi

+0

Antwort von oben formatOutput den Job machen? Ihre Frage scheint so falsch zu sein .... – joetsuihk

Verwandte Themen