将文本节点插入包含XML的XML文档

Dre*_*ejc 3 c# xml

我正在动态构建XML文档,我使用CreateTextNode(text)方法创建一个文本节点.

现在,如果文本包含XML,它将是XML编码的.

例如:

text = "some <b>bolded</b> text"
Run Code Online (Sandbox Code Playgroud)

如何在不进行XML编码的情况下插入文本.

编辑:

我正在使用XmlDocument构建XML文档并插入元素和节点.最终输出不应包含CDATA部分或编码部分.

对于instace,我希望最终输出看起来像这样,文本来自一个设置:

<root><p>Some <b>bolded</b> text</p></root>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 7

如果你想在文本"some <b>bolded</b> text",则编码是正确的事情-否则它不(仅仅)文本节点.你可以CDATA它,但我不认为这也是你的意思.

你想要xml内容如上吗?即为了<b>...</b> 让它内部得到一个元素


编辑:这里的代码通过各种方法添加内容:

        string txt = "some <b>bolded</b> text";
        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<xml><foo/></xml>");
        XmlElement foo = (XmlElement)doc.SelectSingleNode("//foo");

        // text: <foo>some &lt;b&gt;bolded&lt;/b&gt; text</foo>
        foo.RemoveAll();
        foo.InnerText = txt;
        Console.WriteLine(foo.OuterXml);

        // xml: <foo>some <b>bolded</b> text</foo>
        foo.RemoveAll();
        foo.InnerXml = txt;
        Console.WriteLine(foo.OuterXml);

        // CDATA: <foo><![CDATA[some <b>bolded</b> text]]></foo>
        foo.RemoveAll();
        foo.AppendChild(doc.CreateCDataSection(txt));
        Console.WriteLine(foo.OuterXml);
Run Code Online (Sandbox Code Playgroud)