2012-02-08 11 views
7

का उपयोग कर एक्सएमएल फ़ाइल संलग्न करें "एक्सएमएलवाइटर" का उपयोग करने के पहले सुझाव के लिए धन्यवाद, हर बार जब यह नई एक्सएमएल फाइल बनाता है तो मैंने xml फ़ाइल को लोड करने के लिए xmldoc का उपयोग किया था, फिर उस फ़ाइल में संलग्न करें, यह मेरा कोड है लेकिन यह अपवाद फेंकता है " इस दस्तावेज़ में पहले से ही 'DocumentElement' नोड है। "xmlwriter

//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> 

Am अग्रिम

में तरह

<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> 

नीचे धन्यवाद एक्सएमएल में संलग्न करने के लिए

+0

यह उपयोगी है इस

//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"); 

की तरह कुछ result'll कि तरह करने की जरूरत है की तरह uemnt? ................. –

+0

बिल्कुल, उदाहरण के लिए बहुत बहुत धन्यवाद, मैंने अभी तक संशोधित नहीं किया है, मैं स्टार बनूंगा अब एक लिखना नहीं है। मैं कोड वापस यहां पोस्ट करूंगा। एक बार फिर धन्यवाद – Usher

उत्तर

4

XML डेटा के साथ खेलने की कोशिश कर रहा यदि आप .NET संस्करण 3.5 का उपयोग कर रहे हैं तो यह 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

मैं तुम्हें अपने xmlDoc नोड संलग्न करने के लिए की जरूरत है thnik

</USERS> 
<User> 
<UserName>Buggaya</UserName> 

<Email>[email protected]</Email> 
</User> 
</USERS> 

orignal पोस्ट: Append in xml document

संबंधित मुद्दे