CDATA 忽略 html 标记不起作用



嗨,我正在向XML中的属性传递消息。xml是"emailBodyXML",我希望接收消息的属性是"body"。我传递的消息包含在变量"emailBody"中。

我有这个代码:

emailBodyXML.selectSingleNode("//email").setAttribute("body", "<![CDATA[" + emailBody + "]]>");

我把cdata放进去,因为我希望它忽略电子邮件正文可能包含的html标签。但是当我调试它时,html 标签会转换为 &lt;&gt; .我不喜欢它被转换为那个。我希望它仍然显示"<"和">"。我的代码有什么问题?

属性值中不能有<,所以你的<![CDATA[...无效。如果不对<使用实体(以及引号、与号等),您将无法将标记放入属性值中。最好的办法是在元素中使用CDATA

http://www.w3.org/TR/2008/REC-xml-20081126/#attdecls

例:

<body><![CDATA[<p>HTML MARKUP GOES HERE.</p>]]></body>

这对于 HTML 来说现在已经过时了。 https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications 说:

请注意,CDATA 部分不应在 HTML 中使用;它们只应在 HTML 中使用。 在 XML 中工作。

参见

最新更新