CDATA忽略html标签不起作用

时间:2012-10-05 02:23:40

标签: xml parsing cdata

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

我有这段代码:

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

我把cdata放在里面因为我希望它忽略emailBody可能包含的html标签。 但是当我调试它时,html标签会转换为&lt;&gt;。我不喜欢它转换成那个。我希望它仍然显示'&lt;'和'&gt;'。我的代码出了什么问题?

2 个答案:

答案 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。

另请参见