如何序列化包含混合HTML&;XML转换为字符串

本文关键字:XML 转换 字符串 amp 序列化 包含 混合 HTML | 更新日期: 2023-09-27 18:26:13

这可能很荒谬,但我有一个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>
"""

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

我需要的是按照现在的样子呈现HTML,但也要将XML呈现为纯文本字符串(如您在上面的示例中看到的)。理想情况下,我想要一个服务器端解决方案,但我猜它必须是客户端解决方案。

我会使用类似new XMLSerializer()).serializeToString(combinedString)的东西,但这不会也去掉HTML标记吗?

注意:我事先不知道HTML文本。我不知道它是否会被换行符、<p>标记、<div>或其他什么分隔开,所以我不能完全做String.Split(''n')之类的事情。

如何序列化包含混合HTML&;XML转换为字符串

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

更多详细信息:

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