user3367309
user3367309

Reputation: 21

How to add attribute value in xml

i use this code for creating xml file using c# class.

XmlDocument doc = new XmlDocument();
            XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            doc.AppendChild(docNode);
            XmlNode RootNode = doc.CreateElement("SDF");
            doc.AppendChild(RootNode);
            XmlAttribute rootAttribute2 = doc.CreateAttribute("Version");
            rootAttribute2.Value = "3.0";
            RootNode.Attributes.Append(rootAttribute2);
            XmlAttribute rootAttribute = doc.CreateAttribute("xmlns:sdf");
            rootAttribute.Value = "http://www.w3.org/2001/XMLSchema-instance";
            RootNode.Attributes.Append(rootAttribute);
            XmlAttribute rootAttribute1 = doc.CreateAttribute("sdf:noNamespaceSchemaLocation");
            rootAttribute1.Value = "SDF.xsd";
            RootNode.Attributes.Append(rootAttribute1);

output of this code..

 <?xml version="1.0" encoding="UTF-8"?>
    <SDF Version="3.0" xmlns:sdf="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="SDF.xsd">

but i want output like that

  <?xml version="1.0" encoding="UTF-8"?>
    <SDF Version="3.0" xmlns:sdf="http://www.w3.org/2001/XMLSchema-instance" sdf:noNamespaceSchemaLocation="SDF.xsd">

Upvotes: 2

Views: 173

Answers (3)

user3367309
user3367309

Reputation: 21

i searched on google and find answer that solve my problem

XmlNode RootNode = doc.CreateElement("SDF");
            doc.AppendChild(RootNode);
            XmlAttribute rootAttribute2 = doc.CreateAttribute("Version");
            rootAttribute2.Value = "3.0";
            RootNode.Attributes.Append(rootAttribute2);
            XmlAttribute newAttr = doc.CreateAttribute("sdf", "noNamespaceSchemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
            newAttr.Value = "SDF.xsd";
            RootNode.Attributes.Append(newAttr);

Upvotes: 0

malkam
malkam

Reputation: 2355

Use Overloaded version CreateAttribute method.

doc.CreateAttribute("name","namespaceURI")

See below link for detials.

http://msdn.microsoft.com/en-us/library/System.Xml.XmlDocument.CreateAttribute%28v=vs.110%29.aspx

Upvotes: 1

Mike Perrenoud
Mike Perrenoud

Reputation: 67898

You need to use a different overload:

XmlAttribute rootAttribute1 =
    doc.CreateAttribute("sdf", "noNamespaceSchemaLocation", null);

Upvotes: 3

Related Questions