新建只有根節點的XML文件

    #region"指定位置建XML文件"
        private void CreatXML(string filePath)
        {
                XmlDocument xmldoc;
                XmlElement xmlelementRoot;
                xmldoc = new XmlDocument();
                xmlelementRoot = xmldoc.CreateElement("Records");//創建根節點

                xmldoc.AppendChild(xmlelementRoot);
                xmldoc.Save(filePath);//存XML
        }
        #endregion

 

創建XML結構

#region"新建XML結構同時也可放入數據"

private void btnSave_Click(object sender, EventArgs e)
        {          
            XmlDocument xmldoc=new XmlDocument ();
            xmldoc.Load(filePath);
            XmlNode root = xmldoc.SelectSingleNode("Records");  //這里是上面建的XML文件所有先從Recordsr起
            XmlElement xmlelementName, xmlelementType, xmlelementText, xmlelementTitle,xmlelementTime,  xmlelementIfPrompt,xmlelementPromptDate, xmlelementRecord;//宣言結構中的各子節點
           
 xmlelementRecord = xmldoc.CreateElement("Record");//記錄條數及相關信息
            xmlelementRecord.SetAttribute("RecordId", RecordId);//給地點Record清加屬性並加入屬性數據
            xmlelementRecord.SetAttribute("Datetime", strNowDate);
            xmlelementRecord.SetAttribute("ModDatetime", DateTime.Now.ToString("yyyyMMdd tthh:mm:ss"));
            xmlelementRecord.SetAttribute("Time", strNowTime);

            xmlelementTitle = xmldoc.CreateElement("Title");
            xmlelementTitle.InnerText = strTitle;
            xmlelementRecord.AppendChild(xmlelementTitle);

            xmlelementType = xmldoc.CreateElement("Type");
            xmlelementType.InnerText = strType;
            xmlelementRecord.AppendChild(xmlelementType);

            xmlelementName = xmldoc.CreateElement("Name");
            xmlelementName.InnerText = strName;
            xmlelementRecord.AppendChild(xmlelementName);

            xmlelementText = xmldoc.CreateElement("Text");
            xmlelementText.InnerText = strText;
            xmlelementRecord.AppendChild(xmlelementText);

            xmlelementIfPrompt = xmldoc.CreateElement("Prompt");
            xmlelementIfPrompt.InnerText = ifPrompt;
            xmlelementRecord.AppendChild(xmlelementIfPrompt);

            xmlelementPromptDate = xmldoc.CreateElement("PromptDate");
            xmlelementPromptDate.InnerText = strSaveDate;
            xmlelementRecord.AppendChild(xmlelementPromptDate);

            xmlelementTime = xmldoc.CreateElement("PromptTime");

            xmlelementTime.InnerText = strSaveTime;
            xmlelementRecord.AppendChild(xmlelementTime);

            root.AppendChild(xmlelementRecord);
            xmldoc.AppendChild(root);
            xmldoc.Save(filePath);
         }
        #endregion

 

讀取指定的XML各節點內容

 

#region"讀取指定recordId的值"
        private void GetText(string recordid)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(filePath);//filePath是XML路徑
            XmlNode xn = xmldoc.SelectSingleNode("Records");//Reords為根節點

            XmlNodeList xnl = xn.ChildNodes;

            foreach (XmlNode xnf in xnl)
            {
                XmlElement xe = (XmlElement)xnf;
                strRecordId = xe.GetAttribute("RecordId");//得到子節點中的RecordId的屬性值
                if (recordid.Equals(strRecordId))
                {
                    this.txtRecordId.Text = strRecordId;
                    this.txtText.Text = xnf.SelectSingleNode("Text").InnerText;//得到字節點中子節點Text的值
                    this.cbType.Text = xnf.SelectSingleNode("Type").InnerText;//得到字節點中子節點Type的值
                    this.txtTitle.Text = xnf.SelectSingleNode("Title").InnerText;    

                    this.txtSaveDataTime.Text = xnf.SelectSingleNode("PromptTime").InnerText;
                    if (int.Parse(xnf.SelectSingleNode("Prompt").InnerText.ToString()) >0)
                    {
                        this.cbifPrompt.Checked = true;
                    }
                }
            }
        }
        #endregion

posted on 2008-08-08 10:55  Blade  阅读(621)  评论(0)    收藏  举报