<RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> 
<Description xmlns:dc=http://www.w3.org/dc/
                  about="http://www.example.com/test.xml">   
<dc:title>example</dc:title>   
<dc:author>linuxsir</dc:author>
   ... 
</Description>
</RDF> 就是比如第一行<RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> 
我用System.Xml.XmlElement CreateElement写出来的是
<rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#"> 
我不想在RDF前面加上rdf前缀 我只想给后面的名称空间加前缀 请问该如何写 非常感谢!

解决方案 »

  1.   

    可以考虑用CDate来做.
    给你一个我写的方法.不过你如果想直接用还需要定义几个变量
    private System.Xml.XmlDocument xmlDoc= new XmlDocument();;
            /// <summary>
            /// 创建xml节点
            /// </summary>
            /// <param name="XmlNodeName">跟节点名称</param>
            /// <param name="objName">节点属性和节点属性值,数组,数组的下标和2取模=0表示属性名字,
            /// =1表示属性值</param>
            /// <returns>创建的xml节点</returns>
            public System.Xml.XmlNode CreateNote(string XmlNodeName, ref object[] objName)
            {
                try
                {
                    int intLen = 0;
                    System.Xml.XmlNode xmlNewNode;                //创建一个新节点
                    xmlNewNode = xmlDoc.CreateNode(System.Xml.XmlNodeType.Element, XmlNodeName, "");                intLen = objName.Length;
                    //如果没有属性值则只创建一个主节点
                    if (intLen <= 0)
                        return xmlNewNode;                //属性节点
                    System.Xml.XmlNode xmlArrNode;                if ((intLen % 2) != 0)
                    {
                        for (int i = 0; i < objName.Length - 1; i = i + 2)
                        {
                            //加入一个属性名字
                            xmlArrNode = xmlDoc.CreateNode(System.Xml.XmlNodeType.Attribute, objName[i].ToString(), "");
                            //设置属性值
                            xmlArrNode.Value = objName[i + 1].ToString();
                            //加入到新节点中
                            xmlNewNode.Attributes.SetNamedItem(xmlArrNode);                    }                }
                    //这里表示就有一个是节点对象值
                    else
                    {
                        if (objName.Length > 0)
                        {
                            for (int i = 0; i < objName.Length - 1; i = i + 2)
                            {
                                //加入一个属性名字
                                xmlArrNode = xmlDoc.CreateNode(System.Xml.XmlNodeType.Attribute, objName[i].ToString(), "");
                                //设置属性值
                                xmlArrNode.Value = objName[i + 1].ToString();
                                //加入到新节点中
                                xmlNewNode.Attributes.SetNamedItem(xmlArrNode);
                            }
                        }
                        //创建一个CData对象
                        System.Xml.XmlCDataSection xml_CData;// = new System.Xml.XmlCDataSection();
                        xml_CData = xmlDoc.CreateCDataSection(objName[objName.Length - 1].ToString());
                        xmlNewNode.AppendChild(xml_CData);                }
                    //xmlDoc = null;
                    return xmlNewNode;
                }
                catch (Exception ex)
                {
                    return null;
                }
            }
      

  2.   

    看看msdn
    vs05用XmlDocument和XmlElement或者XmlNode
    vs08可以用以上提供的东西,也可以用Linq to Xml的东西
         XDocument和XElement等
      

  3.   

       XmlDocument xmldoc = new XmlDocument();
                XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
                xmldoc.AppendChild(xmlnode);
                XmlElement xmlelem = xmldoc.CreateElement("", "RDF", "");
                XmlAttribute xmlattr = xmldoc.CreateAttribute("xmlns:rdf");
                xmlattr.Value = "http://www.w3.org/TR/REC-rdf-syntax";
                xmlelem.Attributes.Append(xmlattr);
                xmldoc.AppendChild(xmlelem);