Angular 角度5:显示来自服务器响应的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<

我有一个场景,需要显示来自服务器发送的相同字符串的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</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>