2010-01-06 26 views
10

Estoy tratando de formatear visualmente cómo se ve mi archivo XML cuando se imprime. En este momento, si va al here y ve la fuente, verá cómo luce el archivo.Formato XML Documento creado con PHP - DomDocument

El PHP que he crea el archivo es: (Nota, $ links_array es un conjunto de direcciones URL)

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

Como se puede decir mirando a la fuente, el archivo no es tan legible como Me gustaría que sea. ¿Hay alguna forma de formatear los nodos?

Gracias,
Levi

+0

Puede agregar un encabezado xml y abrirlo en FireFox. Esto mostrará una buena versión formateada en su documento xml –

Respuesta

9

Verifique la configuración formatOutput en DOMDocument.

$sitemap->formatOutput = true 
+1

Eso es exactamente lo que estaba buscando. ¡Gracias! – Levi

0

no sólo PHP, hay una hoja de estilo para XML: XSLT, lo que puede dar formato XML en algo se ve bien.

+0

Ah, vale, ya he hecho algunas hojas de estilo XSLT básicas. Esperaba que hubiera una forma de, al menos, poner saltos de línea después de que se haya creado un nodo con PHP. – Levi

+0

respuesta del formato anterior¿El rendimiento hace el trabajo? su pregunta parece equivocada de esta manera ... – joetsuihk