【发布时间】:2016-02-08 11:44:11
【问题描述】:
我有一个类似于下面的 XML 响应,我需要解析 <message> ,其中包含在属性内的一些 JSON 中。它以字符串的形式出现。
"<Response attr1='hello' bar='{ \"int\": 50, \"bool\": false, \"message\":\"< message > Test Message <a href=\"http://www.blah.com\">here</a> < /message >\" }'/>;"
我找到了一些不错的纯 Javascript 答案,例如 here,这是完美的,但是,正如您从上面的示例中看到的那样,XML 现在包含带有 XML 的 JSON,并且此解析器还解析 <a> 和<message> 我需要保留的标签。
实现这一点的最简单方法是什么?我的解决方案需要是纯 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