i am trying to add a new element to node which has attribute same with input. I tried, but i am beginning in xml. How can i do it ?
old xml file:
<Root>
<Chatter Name="Dat" ID="1">
<Content Time="06/05/2014 2:00:08 PM">Send Content</Content>
<Content Time="06/05/2014 2:00:50 PM">Recieve Content</Content>
</Chatter>
<Chatter Name="Khang" ID="2">
<Content Time="06/05/2014 2:01:40 PM">Send Content</Content>
<Content Time="06/05/2014 2:02:00 PM">Recieve Content</Content>
</Chatter>
<Chatter Name="Khanh" ID="12">
<Content Time="06/05/2014 2:03:10 PM">them moi</Content>
</Chatter>
</Root>
i want to add a new element to node which has attribute Name="Khang" if it exist ,so here is new xml file
<Root>
<Chatter Name="Dat" ID="1">
<Content Time="06/05/2014 2:00:08 PM">Send Content</Content>
<Content Time="06/05/2014 2:00:50 PM">Recieve Content</Content>
</Chatter>
<Chatter Name="Khang" ID="2">
<Content Time="06/05/2014 2:01:40 PM">Send Content</Content>
<Content Time="06/05/2014 2:02:00 PM">Recieve Content</Content>
<Content Time="06/05/2014 2:20:40 PM">Send Content</Content>
</Chatter>
<Chatter Name="Khanh" ID="12">
<Content Time="06/05/2014 2:03:10 PM">them moi</Content>
</Chatter>
</Root>
Thank you very much! and my code
public static bool SaveMessage(string name, string content)
{
XmlDocument xmldoc = new XmlDocument();
XmlNodeList xmlnode,xmlOldNode;
xmldoc.Load(_fileXmlPath);
xmlnode =xmlOldNode= xmldoc.GetElementsByTagName("Chatter");
for (int i = 0; i < xmlnode.Count;i++ )
{
if (xmlnode[i].Attributes["Name"].Value == name)
{
XmlElement elem = xmldoc.CreateElement("Name", "Content", name);
elem.SetAttribute("Time", DateTime.Now.ToString());
elem.InnerText = content;
xmldoc.DocumentElement.AppendChild(elem);
return true;
}
}
return false;
}
but it not add to xml file