c# – 使用xmlwriter附加xml文件
发布时间:2020-12-15 07:55:52 所属栏目:百科 来源:网络整理
导读:感谢早先建议使用“ XMLWriter”,每次创建新的xml文件,所以我使用xmldoc加载xml文件然后追加到该文件中,这是我的代码,但它抛出异常说“这个文档已经有’DocumentElement’节点.” //Append to xml file XmlDocument doc = new XmlDocument(); doc.Load(@"c:
感谢早先建议使用“
XMLWriter”,每次创建新的xml文件,所以我使用xmldoc加载xml文件然后追加到该文件中,这是我的代码,但它抛出异常说“这个文档已经有’DocumentElement’节点.”
//Append to xml file XmlDocument doc = new XmlDocument(); doc.Load(@"c:test.xml"); using (XmlWriter xmlWrite = doc.CreateNavigator().AppendChild()) { xmlWrite.WriteStartElement("image name=",Name); xmlWrite.WriteElementString("width",widthValue[1]); xmlWrite.WriteElementString("Height",heightValue[1]); xmlWrite.WriteElementString("file-size",FileSizeValue[1]); xmlWrite.WriteElementString("file-format",FileFormatValue[1]); xmlWrite.WriteElementString("resolution",ResolutionValue[1]); xmlWrite.Close(); } 这是我的示例test.xml <job-metadata> <slug>730s_Sales/CupWinner_0111</slug> <locations>Africa</locations> <primary-location>Africa</primary-location> <reporter>Leigh Sales</reporter> <genre>Current</genre> <copyright>CBS</copyright> <autopublish>true</autopublish> </job-metadata> 我试图像下面的xml一样追加 <job-metadata> <slug>730s_Sales/CupWinner_0111</slug> <locations>Africa</locations> <primary-location>Africa</primary-location> <reporter>Leigh Sales</reporter> <genre>Current</genre> <copyright>CBS</copyright> <autopublish>true</autopublish> - <image name="557684_20111101-730s_SalesCupWinner_0111_80x60.jpg"> <width>80</width> <height>60</height> <file-size>7045</file-size> <file-format>JPEG Baseline</file-format> <resolution>72</resolution> <custom-name>newsthumbnail</custom-name> </image> </job-metadata> 提前致谢 解决方法
要使用.net版本3.5,要使用XML数据,最好是用户
LINQ to XML.
http://www.codeproject.com/Articles/24376/LINQ-to-XML 要么 Manipulate XML data with XPath and XmlDocument (C#) 要么 文章:How to Append to a Large XML File 我想你需要像这样将节点附加到你的xmldocuemnt //add to elements collection doc.DocumentElement.AppendChild(node); 你需要做这样的事情 XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("F:/Documents and Settings/Administrator/Desktop/Account.xml"); XmlElement subRoot=xmlDoc.CreateElement("User"); //UserName XmlElement appendedElementUsername=xmlDoc.CreateElement("UserName"); XmlText xmlTextUserName=xmlDoc.CreateTextNode(txtUsrName.Text.Trim()); appendedElementUsername.AppendChild(xmlTextUserName); subRoot.AppendChild(appendedElementUsername); xmlDoc.DocumentElement.AppendChild(subRoot); //Email XmlElement appendedElementEmail=xmlDoc.CreateElement("Email"); XmlText xmlTextEmail=xmlDoc.CreateTextNode(txtEmail.Text.Trim()); appendedElementEmail.AppendChild(xmlTextEmail); subRoot.AppendChild(appendedElementEmail); xmlDoc.DocumentElement.AppendChild(subRoot); xmlDoc.Save("F:/Documents and Settings/Administrator/Desktop/Account.xml");if(!File.Exists("F:/Documents and Settings/Administrator/Desktop/Account.xml")) { XmlTextWriter textWritter=new XmlTextWriter("F:/Documents and Settings/Administrator/Desktop/Account.xml",null); textWritter.WriteStartDocument(); textWritter.WriteStartElement("USERS"); textWritter.WriteEndElement(); textWritter.Close(); } XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("F:/Documents and Settings/Administrator/Desktop/Account.xml"); XmlElement subRoot=xmlDoc.CreateElement("User"); //UserName XmlElement appendedElementUsername=xmlDoc.CreateElement("UserName"); XmlText xmlTextUserName=xmlDoc.CreateTextNode(txtUsrName.Text.Trim()); appendedElementUsername.AppendChild(xmlTextUserName); subRoot.AppendChild(appendedElementUsername); xmlDoc.DocumentElement.AppendChild(subRoot); //Email XmlElement appendedElementEmail=xmlDoc.CreateElement("Email"); XmlText xmlTextEmail=xmlDoc.CreateTextNode(txtEmail.Text.Trim()); appendedElementEmail.AppendChild(xmlTextEmail); subRoot.AppendChild(appendedElementEmail); xmlDoc.DocumentElement.AppendChild(subRoot); xmlDoc.Save("F:/Documents and Settings/Administrator/Desktop/Account.xml"); 结果就是这样: </USERS> <User> <UserName>Buggaya</UserName> <Email>Buggaya@gmail.com</Email> </User> </USERS> orignal post:Append in xml document (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |