格式化使用 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的主要内容,如果未能解决你的问题,请参考以下文章