Appending XElement to existing XDocument



I have the following XML string in database.



<?xml version="1.0" encoding="utf-16"?><ServiceList><Service><COMPAT>2</COMPAT><EQUIPID>0</EQUIPID><TITLE>Collect Call and SMS</TITLE><SMSCOMMAND>0</SMSCOMMAND><DIALCOMMAND>123</DIALCOMMAND><DEACTIVATIONCOMMAND>0</DEACTIVATIONCOMMAND><MODE>Dial</MODE><DETAIL>Here you go.</DETAIL><IMAGE>2014-16-9--16-28-25</IMAGE><LONGDESC><![CDATA[<p>P<br />P<br />P&nbsp;</p>]]></LONGDESC><Mechanism><Title>Mech Title</Title><Description>Here you go.</Description><Trigger>Mech Trigger</Trigger><Controls>1</Controls></Mechanism></Service></ServiceList>


i needs to add/appened following element inside ServiceList



<Service><COMPAT>2</COMPAT><EQUIPID>0</EQUIPID><TITLE>Collect Call and SMS</TITLE><SMSCOMMAND>0</SMSCOMMAND><DIALCOMMAND>123</DIALCOMMAND><DEACTIVATIONCOMMAND>0</DEACTIVATIONCOMMAND><MODE>Dial</MODE><DETAIL>Here you go.</DETAIL><IMAGE>2014-16-9--16-28-25</IMAGE><LONGDESC><![CDATA[<p>P<br />P<br />P&nbsp;</p>]]></LONGDESC><Mechanism><Title>Mech Title</Title><Description>Here you go.</Description><Trigger>Mech Trigger</Trigger><Controls>1</Controls></Mechanism></Service>


The c# code is given below where i am creating the document



XElement ServiceList =
new XElement("ServiceList",
new XElement("Service",
new XElement("COMPAT", "2"),
new XElement("EQUIPID", equipId),
new XElement("TITLE", form["Title"]),
new XElement("SMSCOMMAND", smscommand),
new XElement("DIALCOMMAND",dialcommand),
new XElement("DEACTIVATIONCOMMAND", smsdecactivationcommand),
new XElement("MODE", mode),
new XElement("DETAIL", form["Detail"]),
new XElement("IMAGE", Datetime),
new XElement("LONGDESC", new XCData(htmlstring)),
new XElement("Mechanism",
new XElement("Title", form["Mechanism.Title"]),
new XElement("Description", form["Mechanism.Description"]),
new XElement("Trigger", form["Mechanism.Triger"]),
new XElement("Controls", form["Mechanism.Controls"])
)
));

XDocument xml = new XDocument(ServiceList);


i simply convert the above document to string with the help of following method and insert it to database as string.



public string GetXMLAsString(XDocument myxml)
{

StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);

string str = sw.ToString();//
return str;
}

No comments:

Post a Comment