我正在动态构建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)
如果你想在文本是"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 <b>bolded</b> 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)