格式化使用 PHP 创建的 XML 文档 - DOMDocument

Posted

技术标签:

【中文标题】格式化使用 PHP 创建的 XML 文档 - DOMDocument【英文标题】:Format XML Document created with PHP - DOMDocument 【发布时间】:2011-01-01 23:18:35 【问题描述】:

我正在尝试以可视方式格式化我的 XML 文件在输出时的外观。现在,如果您转到here 并查看源代码,您将看到文件的样子。

我拥有的用于创建文件的 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);
    

您可以通过查看源代码得知,该文件不像我希望的那样可读。有什么办法可以格式化节点吗?

谢谢, 列维

【问题讨论】:

您可以添加一个 xml 标头并在 FireFox 中打开它。这将在您的 xml 文档中显示一个很好的格式化版本 【参考方案1】:

检查DOMDocument 中的formatOutput 设置。

$sitemap->formatOutput = true

【讨论】:

这正是我想要的。谢谢!【参考方案2】:

不仅仅是PHP,还有XML的样式表:XSLT,可以把XML格式化成……看起来不错。

【讨论】:

啊,好吧,我以前做过一些基本的 XSLT 样式表。我希望有一种方法可以在使用 PHP 创建节点后至少插入换行符。 从上面的格式输出中回答这个工作?您的问题似乎误导了这种方式....

以上是关于格式化使用 PHP 创建的 XML 文档 - DOMDocument的主要内容,如果未能解决你的问题,请参考以下文章

使用PYTHON创建XML文档_python

DTD技术

PHP XML Parser函数

PHP XML Parser 函数

Php 创建XML

2021-04-15qt对XML文件的使用