【问题标题】:How to serialize text that contains mixed HTML & XML to a string?如何将包含混合 HTML 和 XML 的文本序列化为字符串?
【发布时间】:2015-12-08 22:28:29
【问题描述】:

这可能很荒谬,但我有一个 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 文本。我不知道它是否会被换行符、&lt;p&gt; 标签、&lt;div&gt; 或其他任何东西分隔,所以我不能完全做类似String.Split('\n') 的事情。

【问题讨论】:

  • I have a C# function that returns a string 你为什么不返回一个数组/字符串列表。第一个元素 html 和第二个 xml。
  • “这可能很可笑”?这荒谬的 - 如果您控制 C# 代码返回有意义且易于解析的内容,例如带有 HTML 和 XML 作为单独属性或正确编码的 HTML 的 JSON 对象。请说明为什么需要这种奇怪的输出以及其他限制。
  • 您需要提取标签 及其子标签的文本。然后解析提取的字符串。

标签: javascript c# html asp.net xml


【解决方案1】:

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

更多详情:

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

【讨论】:

  • 很好......我不敢相信我忘记了这个实用程序。正是我需要的!
猜你喜欢
  • 2017-02-26
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
相关资源
最近更新 更多