海纳百川

XML文件的操作--上

XML文件因为语法简单,操作方便而受到广泛的使用。下面介绍XML文件的一些操作
CreateXmlFile函数创建一个XML文件
AlterXmlFile函数修改已存在的XML文件
       /// <summary>
        /// 新建XmlFile
        /// </summary>
        /// <param name="xmlFile"></param>
        private void CreateXmlFile(string xmlFile)
        {
            XmlDocument doc = new XmlDocument();
            doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", ""));

            //BookList
            XmlNode blNode = doc.CreateElement("BookList");

           //Book
            XmlNode bookNode = CreateBookNode("我的二战回忆录", "丘吉尔", doc);

            //Chapter
            bookNode.AppendChild(CreateChapterNode("Chapter1", "胜利者的蠢事", doc));
            bookNode.AppendChild(CreateChapterNode("Chapter2", "和平的鼎盛时期", doc));


            blNode.AppendChild(bookNode);

            doc.AppendChild(blNode);

            doc.Save(xmlFile);
        }

        /// <summary>
        /// 往BookList中追加子节点
        /// </summary>
        /// <param name="xmlFile"></param>
        private void AlterXmlFile(string xmlFile)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(xmlFile);

            XmlNode bookNode = doc.SelectSingleNode("//Book");

            bookNode.AppendChild(CreateChapterNode("Chapter3", "潜伏的危险", doc));
            bookNode.AppendChild(CreateChapterNode("Chapter4", "阿道夫.希特勒", doc));

            XmlNode blNode = doc.SelectSingleNode("//BookList");

            XmlNode newBookNode = CreateBookNode("泰戈尔诗集", "泰戈尔", doc);
            newBookNode.AppendChild(CreateChapterNode("Chapter1", "园丁集", doc));
            newBookNode.AppendChild(CreateChapterNode("Chapter2", "飞鸟集", doc));

            blNode.AppendChild(newBookNode);

            doc.Save(xmlFile);
        }

        /// <summary>
        /// Create Book Node
        /// </summary>
        /// <param name="name"></param>
        /// <param name="author"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        private XmlNode CreateBookNode(string name, string author,XmlDocument doc)
        {
            //Book
            XmlNode bookNode = doc.CreateElement("Book");

            //Name=""
            XmlAttribute attrName = doc.CreateAttribute("Name");
            attrName.Value = name;
            bookNode.Attributes.Append(attrName);

            //Author=""
            XmlAttribute attrAuthor = doc.CreateAttribute("Author");
            attrAuthor.Value = author;
            bookNode.Attributes.Append(attrAuthor);

            return bookNode;
        }

        /// <summary>
        /// Create Chapter Node
        /// </summary>
        /// <param name="index"></param>
        /// <param name="chapterTitle"></param>
        /// <param name="doc"></param>
        /// <returns></returns>
        private XmlNode CreateChapterNode(string index,string chapterTitle,XmlDocument doc)
        {
            //Chapter
            XmlNode chapNode = doc.CreateElement("Chapter");

            //Index=""
            XmlAttribute attrIndex = doc.CreateAttribute("Index");
            attrIndex.Value = index;
            chapNode.Attributes.Append(attrIndex);

            //Title=
            XmlAttribute attrTitle = doc.CreateAttribute("Title");
            attrTitle.Value = chapterTitle;
            chapNode.Attributes.Append(attrTitle);

            return chapNode;
        }
通过上面先创建,然后修改XML文件的操作,得到的XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<BookList>
  <Book Name="我的二战回忆录" Author="丘吉尔">
    <Chapter Index="Chapter1" Title="胜利者的蠢事" />
    <Chapter Index="Chapter2" Title="和平的鼎盛时期" />
    <Chapter Index="Chapter3" Title="潜伏的危险" />
    <Chapter Index="Chapter4" Title="阿道夫.希特勒" />
  </Book>
  <Book Name="泰戈尔诗集" Author="泰戈尔">
    <Chapter Index="Chapter1" Title="园丁集" />
    <Chapter Index="Chapter2" Title="飞鸟集" />
  </Book>
</BookList>

下章将介绍XML文件的读操作,主要是用xpath读XML文件

posted on 2010-06-10 23:59  These days  阅读(265)  评论(0编辑  收藏  举报

导航