Revit中读写xml方法

来源:互联网 发布:知乎live500场 百度云 编辑:程序博客网 时间:2024/06/16 18:33
  #region read xml file
        public object  getxmlforCategory(string filename ,string catTypename)
        {
           // MessageBox.Show("Starting read xml file...");
            XmlDocument doc = new XmlDocument();
            doc.Load(filename);
            //XmlReaderSettings settings = new XmlReaderSettings();
            //settings.IgnoreComments = true;//忽略文档里面的注释
            //XmlReader reader = XmlReader.Create(xfilename, settings);
            //doc.Load(reader);
            //XmlNode xn = doc.SelectSingleNode("vscategory");
            XmlNode xn = doc.SelectSingleNode("vscategory");
            XmlNodeList xnl = xn.ChildNodes;
            vsCategory vs = new vsCategory();
            //MessageBox.Show("Starting foreach read xml body...");
            foreach (XmlNode xn1 in xnl)
            {
               
                XmlElement xe1 = (XmlElement)xn1;
                vs.CategoryTypeName = xe1.GetAttribute("Name").ToString();
                //string sr = st.Substring(0, 3);
                //string sg = st.Substring(3, 3);
                //string sb = st.Substring(6, 3);
                if (catTypename == vs.CategoryTypeName)
                { 
                    XmlNodeList xnl1 = xe1.ChildNodes;
                    vs.LineParttern = xnl1.Item(0).InnerText;
                    vs.FillParttern = xnl1.Item(1).InnerText;
                    vs.ProjLineweight = Convert.ToInt32(xnl1.Item(2).InnerText);
                    vs.ProjLinecolor = Convert.ToInt32(xnl1.Item(3).InnerText);
                    vs.ProjPartterncolor = Convert.ToInt32(xnl1.Item(4).InnerText);
                    vs.Cutlineweight = Convert.ToInt32(xnl1.Item(5).InnerText);
                    vs.CutLinecolor = Convert.ToInt32(xnl1.Item(6).InnerText);
                    vs.CutPartterncolor = Convert.ToInt32(xnl1.Item(7).InnerText);
                    vs.SurTans = Convert.ToInt32(xnl1.Item(8).InnerText);
                    vs.Halfone = Convert.ToBoolean(xnl1.Item(9).InnerText);
                    vs.ModelCate = xnl1.Item(10).InnerText;
                    vs.AnnotCate = xnl1.Item(11).InnerText;
                    vs.AnalyCate = xnl1.Item(12).InnerText;
                    vs.ImportCate = xnl1.Item(13).InnerText;
                    vs.SubCate = xnl1.Item(14).InnerText;
                    vs.ModelCateTran = xnl1.Item(15).InnerText;
                    vs.CateVisibfalse = xnl1.Item(16).InnerText;
                    vs.PackageFolder = xnl1.Item(17).InnerText;
                    vs.Catetype = xe1.GetAttribute("Type").ToString();
                }
            }
            //MessageBox.Show("end read xml");
            return vs;
            //reader.Close();
        }
     
        public void setxmlforCategory(string filename,string catTypename,vsCategory vs)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(filename);
            XmlNode xn = doc.SelectSingleNode("vscategory");
            XmlNodeList xnl = xn.ChildNodes;
            
            //vsCategory vs = new vsCategory();
            //MessageBox.Show("Starting foreach read xml body...");
            foreach (XmlNode xn1 in xnl)
            {
                XmlElement xe1 = (XmlElement)xn1;
                if (xe1.GetAttribute("Name").ToString()== catTypename)
                {
                    //MessageBox.Show(vs.FillParttern + "vs.LineParttern + color" + vs.CutLinecolor.ToString());
                    XmlNodeList xnl1 = xe1.ChildNodes;
                    xnl1.Item(0).InnerText = vs.LineParttern;
                    xnl1.Item(1).InnerText = vs.FillParttern;
                    xnl1.Item(2).InnerText = vs.ProjLineweight.ToString();
                    xnl1.Item(3).InnerText = vs.ProjLinecolor.ToString();
                    xnl1.Item(4).InnerText = vs.ProjPartterncolor.ToString();
                    xnl1.Item(5).InnerText = vs.Cutlineweight.ToString();
                    xnl1.Item(6).InnerText = vs.CutLinecolor.ToString();
                    xnl1.Item(7).InnerText = vs.CutPartterncolor.ToString();
                    xnl1.Item(8).InnerText = vs.SurTans.ToString();
                    xnl1.Item(9).InnerText = vs.Halfone.ToString();
                    xnl1.Item(10).InnerText = vs.ModelCate;
                    xnl1.Item(11).InnerText = vs.AnnotCate;
                    xnl1.Item(12).InnerText = vs.AnalyCate;
                    xnl1.Item(13).InnerText = vs.ImportCate;
                    xnl1.Item(15).InnerText = vs.ModelCateTran;
                    xnl1.Item(16).InnerText = vs.CateVisibfalse;
                    xnl1.Item(17).InnerText = vs.PackageFolder;
                }
             }
            doc.Save(filename);
          }


        #endregion
原创粉丝点击