【问题标题】:Parsing XML with JSON, also containing XML, embedded in an attribute of a tag用 JSON 解析 XML,也包含 XML,嵌入在标签的属性中
【发布时间】:2016-02-08 11:44:11
【问题描述】:

我有一个类似于下面的 XML 响应,我需要解析 <message> ,其中包含在属性内的一些 JSON 中。它以字符串的形式出现。

"<Response attr1='hello' bar='{ \"int\": 50, \"bool\": false, \"message\":\"&lt; message &gt; Test Message &lt;a href=\"http://www.blah.com\"&gt;here&lt;/a&gt;  &lt; /message &gt;\" }'/>;"

我找到了一些不错的纯 Javascript 答案,例如 here,这是完美的,但是,正如您从上面的示例中看到的那样,XML 现在包含带有 XML 的 JSON,并且此解析器还解析 &lt;a&gt;&lt;message&gt; 我需要保留的标签。

实现这一点的最简单方法是什么?我的解决方案需要是纯 Javascript,没有库。

编辑:https://jsfiddle.net/ree3c7w0/ 显示了我尝试提取 JSON 的同时将 XML 保留在 JSON 中的尝试,唯一的方法是在 JSON 中转义 XML

【问题讨论】:

  • JSON 中的 XML 被转义,但 XML 中的 JSON 没有。您需要先对 JSON 进行编码,然后再将其设置为 XML。
  • @gurvinder372 你的意思是 JSON 中的 XML 应该被转义,所以它不应该被解析吗?
  • 我的意思是只解析 JSON 中的 XML,以便 JSON 解析不会失败,类似地,应该解码 XML 中的 JSON,以便 XML 解析不会失败。
  • 此xml无效,请查看xmlvalidation.com
  • @gurvinder372 因此,如果您要接收这段 XML 作为响应,并且您需要解析响应的属性以及其中一个属性中的 JSON,那么您的方法?从您的回答看来,我应该期待更正确的 XML

标签: javascript json xml parsing


【解决方案1】:

你需要使用一些软件将xml转义以将其嵌入到json中,然后将json转义以将其嵌入到xml中。

【讨论】:

  • 我在 JSON 中转义了 XML,然后在属性中转义了 JSON,然后通过解析器运行它以尝试获取消息标签,它们在解析过程中被删除,同样的问题!
  • 删除了什么?逃跑?没关系。
  • 我已经意识到被删除的内容并不重要。这样的 XML 被转义是标准做法吗?我可以想象,使用嵌入式 XML/JSON 是一场噩梦!
  • 阅读kunststube.net/escapism 了解为什么需要转义以及如何完成转义。关于噩梦:那是一场噩梦,这就是为什么我建议您不要手动操作,而是通过您在服务器上使用的语言使用函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多