Angular 角度5:显示来自服务器响应的html和xml
我有一个场景,需要显示来自服务器发送的相同字符串的html和xml 服务器的答复如下所示:Angular 角度5:显示来自服务器响应的html和xml,angular,xss,angular-dom-sanitizer,Angular,Xss,Angular Dom Sanitizer,我有一个场景,需要显示来自服务器发送的相同字符串的html和xml 服务器的答复如下所示: This is sample text with <b>bold text</b> and also some xml like this <note><to>you</to><from>me</from><heading>title</heading><body>message<
This is sample text with <b>bold text</b> and also some xml like this <note><to>you</to><from>me</from><heading>title</heading><body>message</body></note>. As you can see it contains both xml to display and html to render.
<pre>{{msg}}</pre>
当我使用[innerHTML]
而不是[innerText]
时,xml已被清除
如何显示示例xml代码以及解析html标记(如
标记)?
至少我怎样才能消除这个错误?恐怕这是不可能的。请看一下: 用户代理必须处理它们不处理的元素和属性 理解为语义中立;将它们留在DOM中(对于DOM) 处理器),并根据CSS对其进行样式化(对于CSS处理器), 但不能从中推断出任何意义 这意味着,尽管浏览器不知道这些元素,但它们将是dom的一部分,因此不会显示在文本中 您唯一的解决方案是对所有标记进行编码,除了
,
,。。。你自己:
-><;注>代码>或使用标记之类的内容进行格式化
作为最简单的解决方法,只需使用msg
而不进行消毒:
{{msg}
因为它不会被解释,所以消毒是没有必要的。(当然,像
这样的标签也不会被解释。)看看这个stackblitz的例子:
<pre>{{msg}}</pre>