Here is my code. Here i am getting only Elements. I want Attribute value also. Please anyone Help me.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
try
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
XDocument Xdoc = new XDocument(new XElement("Users"));
if (System.IO.File.Exists(@"D:\Example.xml"))
Xdoc = XDocument.Load(@"D:\Example.xml");
else
{
Xdoc = new XDocument();
XElement xmlstart = new XElement("Users");
Xdoc.Add(xmlstart);
}
XElement xml = /*new XElement("Users",*/
new XElement("Person",
new XElement("Name", txtNames.Text)),
new XElement("Age", txtAge.Text),
new XElement("Address", txtAddress.Text));
if (Xdoc.Descendants().Count() > 0)
Xdoc.Descendants().First().Add(xml);
else
Xdoc.Add(xml);
Xdoc.Save(@"D:\Example.xml");
MessageBox.Show("Saved to XML File");
txtNames.Text = "";
txtAge.Text = "";
txtAddress.Text = "";
}
catch (Exception)
{
throw;
}
}
Madhanmohan DevarajanPosted Mar 21, 2017, 11:14 AM
using System.Xml.XPath;
...
foreach (XElement user in xd.Root.Elements("User").Where(u => u.Attribute("Country") == null).ToList())
{
user.Add(new XAttribute("Country", "USA"));
}
foreach(var xe in xd.XPathSelectElements("xml/User[not(@Country)]"))
{
xe.SetAttributeValue("Country", "USA");
}