怎么能创建一个Xml文档,急

解决方案 »

  1.   


    /// <summary>
            /// 生产一个XML文件
            /// </summary>
            /// <param name="xmlFilePath">XML文件名</param>
            /// <param name="StartElement">根元素名</param>
            private void CreateXMLFile(string xmlFilePath, string StartElement)
            {
                XmlTextWriter writer = new XmlTextWriter(xmlFilePath, Encoding.UTF8);
                writer.WriteStartDocument();
                writer.WriteStartElement(StartElement);
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();
            }        /// <summary>
            /// 向XML文件中增加一个新的元素,属性,值
            /// </summary>
            /// <param name="xmlpath">XML文件名</param>
            /// <param name="element">元素名</param>
            /// <param name="attribut">属性名</param>
            /// <param name="value">值</param>
            /// <returns></returns>
            public bool addXmlElement(string xmlpath, string element, string attribute, string value)
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(xmlpath);
                    XmlNode node = doc.SelectSingleNode("//" + element);
                    if (node == null)
                    {
                        XmlElement xElement = doc.CreateElement(element);
                        xElement.SetAttribute(attribute, value);
                        doc.DocumentElement.AppendChild(xElement);
                    }
                    else
                    {
                        try
                        {
                            if (node.Attributes[attribute] == null)
                            {
                                XmlAttribute newAttr = doc.CreateAttribute(attribute);
                                newAttr.Value = value;
                                node.Attributes.Append(newAttr);
                            }
                            else
                            {
                                string attributesvalue = node.Attributes[attribute].Value;
                                if (attributesvalue != null || attributesvalue != "")
                                {
                                    node.Attributes[attribute].Value = value;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            XmlAttribute newAttr = doc.CreateAttribute(attribute);
                            newAttr.Value = value;
                            node.Attributes.Append(newAttr);
                        }
                    }
                    doc.Save(xmlpath);
                    return true;
                }
                catch (Exception e)
                {
                    return false;
                }
            }        /// <summary>
            /// 更新XML文件中某个元素的属性值
            /// </summary>
            /// <param name="xmlpath">XML文件名</param>
            /// <param name="element">元素名</param>
            /// <param name="attribut">属性名</param>
            /// <param name="value">值</param>
            /// <returns></returns>
            public bool updateValue(string xmlpath, string element, string attribute, string value)
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(xmlpath);
                    XmlNode node = doc.SelectSingleNode("//" + element);
                    node.Attributes[attribute].Value = value;
                    doc.Save(xmlpath);
                    return true;
                }
                catch (Exception ex)
                {
                    if (addXmlElement(xmlpath, element, attribute, value))
                        return true;
                    else
                        return false;
                }
            }        /// <summary>
            /// 从XML文件中读取某个元素的属性值
            /// </summary>
            /// <param name="xmlpath">XML文件名</param>
            /// <param name="element">元素名</param>
            /// <param name="attribut">属性名</param>
            /// <param name="value">值</param>
            /// <returns></returns>
            public string readValue(string xmlpath, string element, string attribute, string value)
            {
                try
                {
                    XmlDocument doc = new XmlDocument();
                    doc.Load(xmlpath);
                    XmlNode node = doc.SelectSingleNode("//" + element);
                    if (node.Attributes[attribute].Value.ToString() != "")
                    {
                        value = node.Attributes[attribute].Value;
                    }
                    else
                    {
                        addXmlElement(xmlpath, element, attribute, value);
                    }
                    return value;
                }
                catch (Exception ex)
                {
                    if (addXmlElement(xmlpath, element, attribute, value))
                        return value;
                    else
                        return "";
                }
            }