【问题标题】:c# XML avoid html encode using XDocumentc# XML 避免使用 XDocument 进行 html 编码
【发布时间】:2013-10-09 20:42:54
【问题描述】:

使用 XDocument 创建 xml 文件后,我最终得到:

<![CDATA[text]]>

<br />

但我想将这些保留为 HTML,我该如何阻止呢?

【问题讨论】:

  • XML 和 HTML 在代码和文本中的奇妙组合。
  • 对此我无能为力,数据包含字符串中的 html。我不知道新的 XCData() 选项。

标签: c# linq-to-xml


【解决方案1】:

我假设您将一个字符串传递给某处的 XDocument 或 XElement 构造函数,其中该字符串包含 XML。不。请改用XDocument.Parse(string)XElement.Parse(string)

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.parse.aspxhttp://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.parse.aspx

请注意,这显然只适用于恰好是格式良好的 XML 的 HTML。

例如:

XElement.Parse("<TagName>The string has <br /> in it.</TagName>")

如果你静态知道文本,只需使用构造函数调用来构建它,例如

new XElement("TagName", "The string has ", new XElement("br"), " in it.")

【讨论】:

  • 我实际上发现使用:new XElement(elementName, new XCData(value));解决了 CData 问题,所以不是使用 Parse,而是有一个简单的 add 方法用于 XDocument 中的换行符,该方法添加标签
    ?
  • 当然,Add(new XElement("br")) 或带有命名空间的重载
  • 对不起,你让我有点困惑,假设我创建了一个这样的元素: new XElement("TagName","The string has
    in it");我将如何替换
    ?肯定不是只有 br 吗?
  • 不喜欢:新的 XElement.Parse?我必须写成: new XElement(XElement.Parse(etc?
  • 要么使用new XElement(...),要么使用XElement.Parse(...)而不使用new
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 2015-05-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2017-11-25
  • 1970-01-01
相关资源
最近更新 更多