【问题标题】:Escaping XML characters in json在 json 中转义 XML 字符
【发布时间】:2018-02-07 11:47:48
【问题描述】:

我有一个 json,它可能包含无效的 XML 字符,例如:

{
   items: [
      { id: 1, description: 'hello&nbsp;<b>world</b>&shy;' }
   ]
}

这些值由用户输入到 textarea 中,通常是通过复制和粘贴。出于遗留原因,我将description 之类的属性绑定到xml,然后在服务器上解析XML。

我需要确保带有来自 JSON 的数据的 xml 是有效的,所以我需要对 json 中的值进行转义。不转义它会给出无效的 xml:

<data>
   <myItems>
       <item id="1">hello&nbsp;<b>world</b>&shy;</item>
   </myItems>
</data>

如何转义 json 以仅包含有效的 xml?

要求:escape(json) 必须给出与escape(escape(json)) 相同的结果

【问题讨论】:

  • 您可以在 JSON 中对用户输入的 HTML 进行 URL 转义(百分比编码)。

标签: javascript json xml escaping


【解决方案1】:

如何将 json 转义为仅包含有效的 xml?

你没有。转义是在您更改上下文时完成的,即您在创建 XML 时转义 json 数据。

【讨论】:

  • 问题是,XML 是由handlebars 模板创建的,它不会转义json。 XML 不是 1:1 映射到 json
  • 我不知道“车把”是什么,但它看起来好像弄错了。如果它在 JSON 字符串中找到 &amp;amp;xxx,它应该在 XML 中将其输出为 &amp;amp;xxx
  • 根据 Handlebars 文档 (handlebarsjs.com),它会转义标签。但即便如此,您也可以创建自己的转义函数。
猜你喜欢
  • 1970-01-01
  • 2011-05-08
  • 2023-03-09
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多