使用XElement时如何输入文本

Eri*_*ric 14 html c# linq

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

  1. 只是直接放入文本不起作用,因为&转换为int&. new XElement("h1", "Text to keep together.");

  2. 我尝试使用以下内容在原始XML中进行解析,但是barfs出现此错误:

    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;
}
Run Code Online (Sandbox Code Playgroud)

我找不到一种方法只是将原始文本推送过去而不会被转义.我错过了一些明显的东西吗

bob*_*nce 14

我找不到一种方法只是将原始文本推送过去而不会被转义.

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

new XElement("h1", "Text\u00A0to\u00A0keep\u00A0together");
Run Code Online (Sandbox Code Playgroud)