c# – 写一个XML元素,而不是如果InnerText为null
发布时间:2020-12-15 23:26:14 所属栏目:百科 来源:网络整理
导读:我正在编写一个c#类来编写一个 XML文件,该文件需要与我们使用的现有XML的结构完全匹配,以便一些遗留系统不会混淆. 当元素的InnerText值为null时,我需要xml元素的元素标记 element/ 代替 element/element 我设法事先做到了,但一直无法重复. 以下是我用来编写x
我正在编写一个c#类来编写一个
XML文件,该文件需要与我们使用的现有XML的结构完全匹配,以便一些遗留系统不会混淆.
当元素的InnerText值为null时,我需要xml元素的元素标记 <element/> 代替 <element></element> 我设法事先做到了,但一直无法重复. public bool WriteXML(string path) { // Create the xml document in memory inc. xml declaration XmlDocument doc = new XmlDocument(); XmlDeclaration dec = doc.CreateXmlDeclaration("1.0","UTF-8",null); // Create the root element doc.AppendChild(dec); XmlElement rootNode = doc.CreateElement("root"); doc.AppendChild(rootNode); // Create elements at root node XmlElement XE_level1 = doc.CreateElement("level1"); XE_level1.InnerText = "Text"; rootNode.AppendChild(XE_level1); // Create a user data element XmlElement XE_level2 = doc.CreateElement("level2"); XE_level2.InnerText = "Text"; XE_level1.AppendChild(XE_level2); doc.Save(path); } 解决方法
每次调用InnerText的set属性访问器时,XmlElement似乎都展开了.此代码段适用于新的XmlElements:
if(text != null) { myNode.InnerText = text; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |