C# 添加带格式的XML节点
我正在将一个节点添加到XML文件中,但需要将其正确格式化。你能帮忙吗C# 添加带格式的XML节点,c#,xml,formatting,C#,Xml,Formatting,我正在将一个节点添加到XML文件中,但需要将其正确格式化。你能帮忙吗 String newFile = System.IO.Path.GetFileName(textBox1.Text); //file name string filename = @"palette.xml"; XmlDocument doc = new XmlDocument(); doc.Load(filename); //
String newFile = System.IO.Path.GetFileName(textBox1.Text);
//file name
string filename = @"palette.xml";
XmlDocument doc = new XmlDocument();
doc.Load(filename);
//create node and add value
XmlNode node = doc.CreateNode(XmlNodeType.Element, "item", null);
//create title node
XmlNode nodeTitle = doc.CreateElement("name");
//add value for it
nodeTitle.InnerText = @"<![CDATA["+newFile+"]]>";
//create Url node
XmlNode nodeUrl = doc.CreateElement("imgfile");
nodeUrl.InnerText = newFile;
//add to parent node
node.AppendChild(nodeTitle);
node.AppendChild(nodeUrl);
//add to elements collection
doc.DocumentElement.AppendChild(node);
//save back
doc.Save(filename);
String newFile=System.IO.Path.GetFileName(textBox1.Text);
//文件名
字符串文件名=@“palete.xml”;
XmlDocument doc=新的XmlDocument();
doc.Load(文件名);
//创建节点并添加值
XmlNode node=doc.CreateNode(XmlNodeType.Element,“item”,null);
//创建标题节点
XmlNode nodeTitle=doc.CreateElement(“名称”);
//为它增值
nodeTitle.InnerText=@”;
//创建Url节点
XmlNode nodeUrl=doc.CreateElement(“imgfile”);
nodeUrl.InnerText=newFile;
//添加到父节点
node.AppendChild(nodeTitle);
node.AppendChild(nodeUrl);
//添加到元素集合
doc.DocumentElement.AppendChild(节点);
//挽救
文件保存(文件名);
XML应该是这样的:
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
panda.gif
但看起来是这样的:
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
![CDATA[panda.gif]]
panda.gif
有一种方法可以用来包装cdata数据
XMLNode.AppendChild( XMLDocument.CreateCDataSection( newFile ) );
它XMLDocument.CreateCataSection返回XmlCDataSection对象,您可以将该对象附加到节点,它将用CDATA包装您的文件
查看此项了解更多信息:有一种方法可用于包装cdata数据
XMLNode.AppendChild( XMLDocument.CreateCDataSection( newFile ) );
它XMLDocument.CreateCataSection返回XmlCDataSection对象,您可以将该对象附加到节点,它将用CDATA包装您的文件
查看此项了解更多信息:CDATA被视为节点,而不是内部文本
<item>
<name>
<![CDATA[panda.gif]]>
</name>
<imgfile>panda.gif</imgfile>
</item>
CDATA被视为一个节点,而不是一个内部文本
<item>
<name>
<![CDATA[panda.gif]]>
</name>
<imgfile>panda.gif</imgfile>
</item>
你能给我一个更好的解释吗?不用担心……好的,你在代码中的做法是尝试将CDATA直接放入内部文本中。这就是它解析错误的原因。上面我给你的一行代码是使用XMLDocument类调用一个名为CreateCataSection的方法来将字符串包装到CDATA中。请你给出更好的解释好吗?不用担心……好的,在代码中这样做的方法是尝试将CDATA直接放入内部文本中。这就是它解析错误的原因。我在上面给出的一行代码是使用XMLDocument类调用一个名为CreateCataSection的方法,将字符串包装到CDATA中。