'Create XML attribute in c#
I have the following code to write some data in an xml file. It works well but the attributes. I can not create attributes and its value for an element.
//.xml file===========================
<?xml version="1.0" encoding="utf-8"?>
<Errors>
<Error Name="abc" ContactNo="123">
<Description>Test</Description>
</Error>
</Errors>
// c# code ===========================
XmlDocument xmlErrors = new XmlDocument();
xmlErrors.Load(Path.Combine(Application.StartupPath, "Errors.xml"));
XmlElement subRoot = xmlErrors.CreateElement("Error");
// subRoot.Attributes[0].Value = "Test 1";
// subRoot.Attributes[1].Value = "Test 2";
XmlElement Description = xmlErrors.CreateElement("Description");
Description.InnerText = currentData.ExamineeName;
subRoot.AppendChild(Description);
xmlErrors.DocumentElement.AppendChild(subRoot);
xmlErrors.Save(Path.Combine(Application.StartupPath, "Errors.xml"));
Would you please help me how to create an attribute and its value? Thanks.
Solution 1:[1]
XmlElement error = Errors.CreateElement("Error");
XmlAttribute errName= Errors.CreateAttribute("Name");
errName.value="abc"
error.Attributes.Append(errName);
Solution 2:[2]
Use SetAttributeValue on a XElement
object:
subRoot.SetAttributeValue("Name","Test 1");
subRoot.SetAttributeValue("ContactNo","Test 1");
Solution 3:[3]
In LINQ2XML
XElement doc=new XElement("Errors",
new XElement("Error",new XAttribute("Name","abc"),new XAttribute("ContactNo","123")),
new XElement("Description","Test")
);
doc.Save(path);
Solution 4:[4]
the simplest way is to use the following code:
error.SetAttribute("id", "value");
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | mhs |
Solution 2 | |
Solution 3 | Anirudha |
Solution 4 | B.Habibzadeh |