您好我正在将消息传递给XML中的属性。 xml是'emailBodyXML',我想要接收消息的属性是'body'。我传递的消息包含在变量'emailBody'中。
我有这段代码:
emailBodyXML.selectSingleNode("//email").setAttribute("body", "<![CDATA[" + emailBody + "]]>");
我把cdata放在里面因为我希望它忽略emailBody可能包含的html标签。
但是当我调试它时,html标签会转换为<
或>
。我不喜欢它转换成那个。我希望它仍然显示'&lt;'和'&gt;'。我的代码出了什么问题?
答案 0 :(得分:2)
您无法在属性值中使用<
,因此您的<![CDATA[
...无效。如果不使用<
(以及引号,&符号等)的实体,您将无法将标记放在属性值中。您最好的选择是在元素中使用CDATA
。
http://www.w3.org/TR/2008/REC-xml-20081126/#attdecls
示例:
<body><![CDATA[<p>HTML MARKUP GOES HERE.</p>]]></body>
答案 1 :(得分:0)
对于HTML来说,这已经过时了。 https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications说:
请注意,HTML中不应使用CDATA节;他们只 使用XML。
另请参见