站点地图 XML 换行符:/n 或 /r/n

Sitemap XML line breaks: /n OR /r/n

我目前正在编写一个函数来为我的网络应用程序生成动态站点地图。

我使用带有反引号的模板字符串来构建它们,例如:

let sitemapXML = `
  <urlset>
    <url>
      <loc>https://www.myproject.net/blog</loc>
      <lastmod>${mostRecent.toISOString().slice(0,19) + '+00:00'}</lastmod>
      <changefreq>daily</changefreq>
      <priority>0.8</priority>
    </url>
  </urlset>
`;

虽然这在代码上看起来很棒,但它与 XML 语法混淆,因为第一行有一个空行,它也使我的 XML 响应 "ugly",有一堆额外的空间。所以我正在考虑这样做:

// REMOVE ALL SPACES AND LINE BREAKS TO GET A SINGLE LINE STRING
sitemapXML = sitemapXML.replace(/" "/gm, "").replace(/\n/gm, ""); 

并使用 xml-formatter 使其成为 "pretty"。

问题

xml-formatter 允许您选择换行符。我应该选择什么? \n 还是 \r\n?两者有区别还是无所谓?

XML 解析器会自动将任何 \r\n 转换为 \n,因此您不妨生成 \n 以节省不必要的工作。

去掉所有空格似乎有问题。例如,它会将 <a id="n"/> 更改为 <aid="n"/> 格式不正确的 XML.