【问题标题】:Sitemap XML line breaks: /n OR /r/n站点地图 XML 换行符:/n 或 /r/n
【发布时间】:2019-12-30 15:46:59
【问题描述】:

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

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

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 响应“丑陋”,带有一堆额外的空格。所以我正在考虑这样做:

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

并使用xml-formatter 使其“漂亮”。

问题

这个xml-formatter 允许您选择换行符。我应该选择什么? \n 还是 \r\n?两者有区别还是没关系?

【问题讨论】:

    标签: xml sitemap line-breaks xml-formatting


    【解决方案1】:

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

    摆脱所有空格似乎值得怀疑。例如,它会将&lt;a id="n"/&gt; 更改为&lt;aid="n"/&gt;,这不是格式正确的XML。

    【讨论】:

    • 谢谢!我可以将其全部作为一行字符串发送吗?当然,就像你提到的那样,保留必要的空间。
    • 是的,XML 可以都在一行上。从技术上讲,标签之间的空白很重要,但实际上这仅适用于类似文档的 XML,在这种 XML 中,您会获得类似 &lt;p&gt;A &lt;i&gt;nice&lt;/i&gt; &lt;b&gt;mess&lt;/b&gt;&lt;/p&gt; 的结构。
    猜你喜欢
    • 2013-12-02
    • 2010-12-20
    • 2011-08-22
    • 2012-08-03
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多