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

如何通过JS生成符合规范的XML站点地图?

修正站点地图生成代码以符合Sitemap协议标准

一、核心JS代码修正(解决结构错误与格式问题)

原代码的核心问题是将<lastmod>等标签放在了<url>节点外部,同时错误地对XML内容进行HTML转义。以下是修正后的代码:

// 基于API返回的links数组生成合规的<url>节点
let sitemapEntries = links.map((link) => {
  // 统一lastmod格式为Sitemap要求的ISO 8601标准日期
  const formattedDate = new Date(link.published_at).toISOString().split('T')[0];
  return `
    <url>
      <loc>https://websiteName.com/${link.slug}</loc>
      <lastmod>${formattedDate}</lastmod>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
    </url>
  `;
});

// 构建完整的站点地图XML结构
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
        xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1" 
        xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">
${sitemapEntries.join('')}
</urlset>`;

// 直接输出XML内容(让浏览器识别为标准XML文件)
document.documentElement.innerHTML = '';
document.write(sitemap);
document.close();

// 若需在页面显示XML源码(而非直接输出XML文件),可替换为以下代码:
// const preTag = document.createElement('pre');
// preTag.textContent = sitemap;
// document.body.appendChild(preTag);

关键修改点:

  • 将<lastmod>、<changefreq>、<priority>全部嵌套到<url>节点内部,符合Sitemap协议的层级要求
  • 修正lastmod的日期格式为ISO 8601标准(YYYY-MM-DD),满足协议规范
  • 移除了多余的<br/>HTML标签(XML文档不需要HTML格式标签)
  • 调整输出逻辑:直接生成完整XML文档并替换页面内容,避免不必要的HTML转义错误

二、修正页面载体文件

原文件混用了HTML与XML结构,导致输出内容混乱。以下是修正后的页面文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
</head>
<body>
  <script src="./scripts/sitemap.js"></script>
</body>
</html>

说明:

如果需要直接生成可下载的XML站点地图,可在JS中添加下载逻辑:

// 生成XML文件并触发下载
const blob = new Blob([sitemap], { type: 'application/xml' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'sitemap.xml';
a.click();
URL.revokeObjectURL(url);

三、Sitemap协议核心规则提醒

  • 每个<url>节点必须包含<loc>标签(完整的HTTP/HTTPS URL)
  • <lastmod>、<changefreq>、<priority>为可选标签,其中<priority>取值范围为0.0-1.0
  • 根节点必须为<urlset>,且正确声明官方命名空间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:10:28