添加带有格式的XML节点
本文关键字:XML 节点 有格式 添加 | 更新日期: 2023-09-27 18:18:56
我正在向XML文件添加一个节点,但是我需要对它进行适当的格式化。你能帮忙吗?
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);
XML应该是这样的:
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
但是它看起来是这样的:
<item>
<name><![CDATA[panda.gif]]></name>
<imgfile>panda.gif</imgfile>
</item>
有一个方法可以用来包装数据。
XMLNode.AppendChild( XMLDocument.CreateCDataSection( newFile ) );
XMLDocument。CreateCDataSection返回XmlCDataSection对象,你可以追加到你的节点,它将包装你的文件在CDATA。
查看更多信息:http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.createcdatasection.aspx
CDATA被视为一个节点,而不是一个内部文本
<item>
<name>
<![CDATA[panda.gif]]>
</name>
<imgfile>panda.gif</imgfile>
</item>
:
XmlElement nodeTitle = document.CreateElement("name");
XmlCDataSection CDATA = document.CreateCDataSection("panda.gif");
nodeTitle.AppendChild(CDATA);
node.AppendChild(nodeTitle);