嗨,我正在向XML中的属性传递消息。xml是"emailBodyXML",我希望接收消息的属性是"body"。我传递的消息包含在变量"emailBody"中。
我有这个代码:
emailBodyXML.selectSingleNode("//email").setAttribute("body", "<![CDATA[" + emailBody + "]]>");
我把cdata放进去,因为我希望它忽略电子邮件正文可能包含的html标签。但是当我调试它时,html 标签会转换为 <
或 >
.我不喜欢它被转换为那个。我希望它仍然显示"<"和">"。我的代码有什么问题?
属性值中不能有<
,所以你的<![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 中工作。
参见