C\#XML 생 성의 세 가지 경로 소결

4440 단어 C#XML 생 성
1。나 는 가장 원시 적 이 고 가장 기본 적 인 것 이 라 고 생각한다.XmlDocument 를 이용 하여 XML 파일 에 노드 를 쓴 다음 에 XmlDocument 를 이용 하여 파일 을 저장 하 는 것 이다.     먼저 쓸 XML 파일 을 불 러 옵 니 다.하지만 없 으 면 새로 만 듭 니 다.새로 만 드 는 과정 에서 쓸 코드 가 있어 야 합 니 다.  

            XmlDocument doc = new XmlDocument();
            try
            {
                doc.Load("new.xml");
            }
            catch
            {
                XmlTextWriter xtw = new XmlTextWriter("new.xml", Encoding.UTF8);
                // XML         
                xtw.WriteStartDocument();
                xtw.WriteStartElement("gnode");
                // gnode                  
                xtw.WriteStartElement("myxm1");
                // gnode myxmls             
                xtw.WriteEndElement();
                xtw.WriteEndElement();
                xtw.WriteEndDocument();
                xtw.Close();
                doc.Load("new.xml");
            }
            XmlNode xn = doc.DocumentElement;
            //      
            XmlElement xe = doc.CreateElement("myxml2");
            // , , XmlAttribute; 
            xe.InnerText = "hahaha";
            // ( )     
            xn.AppendChild(xe);
            //          
            doc.Save("new2.xml");
            // XmlDocument
        }
주의 점:새 루트 노드 를 만 들 때 Write Start Element 는 끼 워 넣 을 수 있 습 니 다.즉,하나의 노드 만 있 을 수 있 습 니 다.
2。데이터베이스 에 적용 하여 데이터베이스 의 DataSet 대상 의 값 을 XML 파일 의 요 소 를 생 성 합 니 다.

   using (SqlConnection con = new SqlConnection("Server=.;DataBase=HGSTUDY;uid=sa;pwd=yao"))
            {
                con.Open();
                SqlCommand command = new SqlCommand("select * from GL_STUDY", con);
                command.CommandType = CommandType.Text;
                DataSet ds = new DataSet("DATASET");
                //DATASET XML , NewDataSet      
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = command;
                sda.Fill(ds, "DATATABLE");
                //DATATABLE XML , Table。   
                ds.WriteXml("dbxml.xml");
                // DataSet WriteXml XML , 。 , ds.GetXML()      
            }
3。XmlSerializer 를 이용 하여 클래스 의 속성 값 을 XML 파일 의 요소 값 으로 변환 합 니 다.XML 문서 의 xml Attribute 나 xml Element 로 문자열 을 사용 합 니 다.[그 요소 나 속성 은 클래스 의 정의 로 설정 합 니 다(xml 직렬 화)]
using System;System.xml.Serialization;
3.1.클래스 를 초기 화하 고 속성 값 을 설정 합 니 다.

[XmlRoot("Truck")]
                //---- XML   
        public Truck()   
        { }             
        [XmlAttribute("id")]
        //-------- xml     
        public int ID    
            {        
                get{return this._id;} 
                set { this._id = value; }   
            }      
        [XmlElement("chepai")]
        //------ XML ( )  
        public string cheID   
        {          
            get {
                return this._cheID;
            }        
            set {
                this._cheID = value;
            }       
        }       
        private int _id = 0; 
        private string _cheID = "";  
3.2.XmlSerializer 인 스 턴 스 생 성

class XXX {  
               XmlSerializer ser = new XmlSerializer(Type.GetType("forxml.truck"));   
               Truck tr = new Truck();     
               tr.ID = 1;    
               tr.cheID = " A T34923";
           }
3.3.Serialize 방법-클래스 직렬 화 완성          
  XmlTextWriter xtw = new XmlTextWriter("myxml.xml",Encoding.UTF8); 
        XmlTextWriter 로 XML 파일 만 들 기             ser.Serialize(xtw, tr);                표시 만 하려 면 ser.Serialize(Console.Out,tr)를 직접 사용 할 수 있 습 니 다.}
개인 적 으로 정리 하면 여기 서 세 가지 방법 만 서술 하고 유연 하 게 응용 하면 좋 습 니 다.직접 입력 하거나 데이터 베이스 나 유형 을 통 해 모두 가능 합 니 다.C\#에서 XML 생 성 에 사용 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기