2012-11-28 11 views
5

मैं दो तरीकों की कोशिश की है के आधार पर संपादन पर वे दोनों फ्लॉप काम .. पहला तरीका ::एक्सएमएल नोड्स एक XmlElement

string filepath = Server.MapPath[this is not a link]("XMLFile2.xml"); 
XmlDocument xdoc = new XmlDocument(); 
       xdoc.Load(filepath); 

       XmlNode root = xdoc.DocumentElement; 
       XmlNode idNode = root.SelectSingleNode("/students/student/id"); 
if (idNode.Value == 9.ToString()) 
        { 
         var nodeOfStudent = xdoc.SelectNodes("/students/student[@id='9']"); 
         nodeOfStudent[1].InnerXml = TextBox_firstname.Text; 
         nodeOfStudent[2].InnerXml = TextBox_lastname.Text; 
         nodeOfStudent[3].InnerXml = TextBox_dob.Text; 
         nodeOfStudent[4].InnerXml = TextBox_class.Text; 
         nodeOfStudent[5].InnerXml = TextBox_section.Text; 
         nodeOfStudent[6].InnerXml = TextBox_telephone.Text; 

        } 

दूसरा तरीका ::

string filepath = Server.MapPath("XMLFile2.xml"); 
       XmlDocument xdoc = new XmlDocument(); 
       xdoc.Load(filepath); 

       XmlNode root = xdoc.DocumentElement; 
       XmlNode idNode = root.SelectSingleNode("/students/student/id"); 

xdoc.SelectSingleNode("/students/student[@id='10']/firstname").InnerXml = TextBox_firstname.Text; 
         xdoc.DocumentElement.AppendChild(firstname); 
         xdoc.SelectSingleNode("/students/student[@id='10']/lastname").InnerXml = TextBox_firstname.Text; 
         xdoc.SelectSingleNode("/students/student[@id='10']/dob").InnerXml = TextBox_firstname.Text; 
         xdoc.SelectSingleNode("/students/student[@id='10']/class").InnerXml = TextBox_firstname.Text; 
         xdoc.SelectSingleNode("/students/student[@id='10']/section").InnerXml = TextBox_firstname.Text; 
         xdoc.SelectSingleNode("/students/student[@id='10']/telephone").InnerXml = TextBox_firstname.Text; 

         xdoc.Save(filepath); 

वहाँ कुछ है गलत मुझे नहीं देख ... मेरी xml फ़ाइल इस ::

<students> 
    <student> 
    <id>1</id> 
    <first_name>ahmad</first_name> 
    <last_name>hani</last_name> 
    <DOB>12/5/1998</DOB> 
    <class>sixth</class> 
    <section>A</section> 
    <telephone>06555632</telephone> 
    </student> 
</students> 

तरह लग रहा है और मैं एक प्रश्न str इस्तेमाल किया "QueryString" का उपयोग कर किसी अन्य पृष्ठ में स्थित ग्रिड व्यू से मूल्यों को लोड करने के लिए आईएनजी ....

अग्रिम धन्यवाद।

उत्तर

1

आप आसानी से xml करने के लिए Linq के साथ ऐसा कर सकते हैं:

int id = 9; 
XDocument xdoc = XDocument.Load(filepath); 
var student = xdoc.Descendants("student") 
        .Where(s => (int)s.Element("id") == id) 
        .SingleOrDefault(); 

if (student != null) 
{ 
    student.Element("first_name").Value = TextBox_firstname.Text; 
    student.Element("last_name").Value = TextBox_lastname.Text; 
    student.Element("DOB").Value = TextBox_dob.Text; 
    student.Element("class").Value = TextBox_class.Text; 
    // etc 
} 

xdoc.Save(filepath); 
+0

मैं आईडी XmlElement मूल्य के आधार पर मेरी कोड फ़िल्टर करना चाहते हैं ,, लेकिन यह काम नहीं लगता है !!! XmlDocument xdoc = नया XmlDocument(); xdoc.Load (filepath); एक्सएमएलएनओडी रूट = xdoc.DocumentElement; एक्सएमएलएनोड idNode = root.SelectSingleNode ("/ छात्र/छात्र/आईडी"); यदि (idNode.Value == null) {नया xml नोड} और यदि (idNode.Value! = Null) {आईडी के मान के साथ एक नया xml तत्व बनाएं) मैंने इसे प्रश्न में समझाया , यहां लिंक है ... http://stackoverflow.com/questions/13607387/edit-xml-elements-of-a- विशिष्ट- नोड- आधारित-on-its-id-element-asp-net-page –

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