c# - 使用 XElement 时如何输入文本

标签 c# html linq

我正在使用新的 System.Xml.Linq 创建 HTML 文档(是的,我知道 HtmlDocument,但更喜欢 XDocument/XElement 类)。我在插入  (或任何其他 HTML 实体)时遇到问题。我已经尝试过的:

  1. 直接将文本放入是行不通的,因为 & 会变成 int &。 new XElement("h1", "Text to keep together.");

  2. 我尝试使用以下方法解析原始 XML,但出现此错误:

    XElement.Parse("要放在一起的文本。");

    --> 引用未声明的实体“nbsp”。`

  3. 第三个尝试如下所示。如果我保存到一个文件,只有一个空格,  会丢失。


var X = new XDocument(new XElement("Name", KeepTogether("Hi Mom!")));
private static XNode KeepTogether(string p)`
{
    return XElement.Parse("<xml>" + p.Replace(" ", "&#160;") + "</xml>").FirstNode;
}

我找不到一种方法可以在不转义的情况下推送原始文本。我是否遗漏了一些明显的东西?

最佳答案

I couldn't find a way to just shove the raw text through without it getting escaped.

只需将 Unicode 字符放在那个  直接在文本节点中引用 (U+00A0 NO-BREAK SPACE),然后让序列化程序担心它是否需要转义为  或不。 (可能不是:如果您使用 UTF-8 或 ISO-8859-1 作为页面编码,则可以直接包含该字符,而不必担心将其编码为实体引用或字符引用)。

new XElement("h1", "Text\u00A0to\u00A0keep\u00A0together");

关于c# - 使用 XElement 时如何输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587547/

相关文章:

c# - 使用异常过滤器有什么好处以及何时应该使用它们?

c# - 在 ASP.NET MVC 中重定向未经授权的 Controller

使用 Google map 的 Android 导航应用程序的 Java 与 HTML5

javascript - linqts - 按多个属性分组

c# - 在逗号分隔的字符串中查找重复条目的索引位置

c# - 如何在 C# 中混合文本框中的单词顺序?

c# - 有没有更好的方法将点路径作为字符串获取?

javascript - 如何使动画仅在可见时工作

html - 有趣的移动 safari 隐藏内容问题

c# - "where xxx is not null and xxx/2 < 4": "is not null" seems to be executed after my operation