コード例 #1
0
        /// <summary>
        /// 将指定文件中的 XML 架构和数据读入 System.Data.DataTable 中。
        /// </summary>
        /// <param name="fileName">从中读取数据的文件的名称。</param>
        /// <returns>用于读取数据的 System.Data.XmlReadMode。</returns>
        public virtual void ReadXml(string fileName)
        {
            this.FileName = Path.GetFullPath(fileName);

            properties.Clear();
            items.Clear();
            others.Clear();

            string basePath = Path.GetDirectoryName(this.FileName);

            XmlDocument         xmldoc = new XmlDocument();
            XmlNamespaceManager nsmgr  = new XmlNamespaceManager(xmldoc.NameTable);

            nsmgr.AddNamespace("k", Consts.NamesapceURI);

            xmldoc.Load(fileName);

            //Project节点
            XmlElement nodeProject = xmldoc.DocumentElement;

            foreach (XmlNode node in nodeProject.ChildNodes)
            {
                try
                {
                    switch (node.Name)
                    {
                    case "PropertyGroup":
                        properties.AddGroup((XmlElement)node, basePath);
                        break;

                    case "ItemGroup":
                        items.AddGroup((XmlElement)node, basePath);
                        break;

                    default:
                        others.Add(node.CloneNode(true));
                        break;
                    }
                }
                catch (Exception ex)
                {
                    //
                }
            }
        }