You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CodeIgniter中生成XML遇到问题,请求技术协助

CodeIgniter生成XML问题的修复方案

你的代码里有3个核心问题导致生成XML失败:

  • $this->load->view('sitemap', $data)默认直接输出视图内容,不会返回字符串,所以$string实际是空值,视图内容已经提前输出到浏览器了。
  • 你用硬编码的HTML字符串覆盖了视图生成的内容,等于白加载了sitemap视图,完全没用。
  • 没有设置XML响应头,浏览器无法正确识别返回的是XML类型内容。

修正后的完整代码:

$this->load->helper('xml');
// 必须设置XML响应头,确保浏览器正确解析
header('Content-Type: application/xml; charset=utf-8');

$data['settings'] = $this->settings_model->getSettings();
// 传入第三个参数TRUE,让视图返回字符串而非直接输出
$string = $this->load->view('sitemap', $data, TRUE);
// 转义XML特殊字符,避免格式错误
$string = xml_convert($string);
echo $string;

视图文件sitemap.php的正确写法(以站点地图为例):

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <!-- 利用$data中的settings变量生成XML节点 -->
    <url>
        <loc><?php echo $settings['base_url']; ?></loc>
        <lastmod><?php echo date('Y-m-d'); ?></lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    <!-- 可以循环生成更多URL节点 -->
</urlset>

内容的提问来源于stack exchange,提问作者Mahnoor Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:20:34