Формат XML-документа, созданного с помощью PHP - DomDocument - PullRequest
10 голосов
/ 06 января 2010

Я пытаюсь визуально отформатировать, как выглядит мой XML-файл при выводе. Прямо сейчас, если вы перейдете сюда и просмотрите источник, вы увидите, как выглядит файл.

PHP, который у меня есть, создает файл: (Обратите внимание, $ links_array - это массив 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);
    }

Как вы можете заметить, посмотрев на источник, файл не так удобен для чтения, как хотелось бы. Есть ли способ для меня отформатировать узлы?

Спасибо
Леви

Ответы [ 2 ]

9 голосов
/ 06 января 2010

Извлечь параметр formatOutput в DOMDocument.

$sitemap->formatOutput = true
0 голосов
/ 06 января 2010

не только PHP, есть таблица стилей для XML: XSLT , которая может форматировать XML в sth, выглядит хорошо.

...