1

嗨,我正在将消息传递给 XML 中的属性。xml 是'emailBodyXML',我想接收消息的属性是'body'。我传递的消息包含在变量“emailBody”中。

我有这个代码:

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

我将 cdata 放入其中是因为我希望它忽略 emailBody 可能包含的 html 标签。但是当我调试它时, html 标签被转换为&lt;or &gt;。我不喜欢它被转换成那样。我希望它仍然显示“<”和“>”。我的代码有什么问题?

4

2 回答 2

2

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

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

例子:

<body><![CDATA[<p>HTML MARKUP GOES HERE.</p>]]></body>
于 2012-10-05T03:56:26.297 回答
0

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

请注意,不应在 HTML 中使用 CDATA 部分;它们仅适用于 XML。

也可以看看

于 2019-10-08T14:32:42.473 回答