如何序列化包含混合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')
之类的事情。
在将结果返回给客户端之前,您应该在服务器端对XML部分进行HTML编码。使用HttpUtility.HtmlEncode函数来完成此任务。
更多详细信息:
https://msdn.microsoft.com/en-us/library/system.web.httputility.htmlencode(v=vs.110).aspx