如何序列化包含混合HTML和文本的文本XML到字符串?

时间:2015-12-08 22:28:30

标签: javascript c# html asp.net xml

这可能很荒谬,但我有一个C#函数,它通过AJAX将一个字符串返回给JavaScript。字符串的第一部分是HTML,第二部分是XML。该字符串将类似于:

"""
<b>Some HTML</b> - this entire string is returned from the server.
<i>I have no control over it</i>.

<br/>

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications 
      with XML.</description>
   </book>
 </catalog>
</xml>
"""

然后我有一个函数创建一个jQuery UI模式对话框,其中包含此字符串作为主文本。它正确地将第一部分呈现为HTML,但第二部分(XML)是不可见的

我需要的是,就像现在一样呈现HTML,但也将XML呈现为明文字符串(如上例所示)。理想情况下,我想要一个服务器端解决方案,但我猜它必须是客户端。

我会使用像new XMLSerializer()).serializeToString(combinedString)这样的东西,但也不会删除HTML标签吗?

注意:我提前不知道HTML文字。我不知道它是否会被换行符,<p>标签,<div>或其他任何内容分开,因此我无法完全按照{{{{{{ 1}}。

1 个答案:

答案 0 :(得分:1)

在将结果返回给客户端之前,您应该对服务器端的XML部分进行HTML编码。使用HttpUtility.HtmlEncode函数完成此任务。

有关详细信息:

https://msdn.microsoft.com/en-us/library/system.web.httputility.htmlencode(v=vs.110).aspx