如何在xml中添加属性值

时间:2014-05-09 11:15:12

标签: c# xml

我使用此代码使用c#class创建xml文件。

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);

输出此代码..

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

但我希望输出

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

3 个答案:

答案 0 :(得分:3)

您需要使用different overload

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

答案 1 :(得分:1)

使用重载版本CreateAttribute方法。

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

见下面的detials链接。

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

答案 2 :(得分:0)

我在谷歌搜索并找到解决我问题的答案

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);