SharePoint Pagelibrary XML 修改

主要逻辑描述:从pagelibrary中下载xml到内存中,更新xml文件的值后再上传到pagelibrary,并且覆盖旧文件,并且签入,发表,审核!
public void UpdateListOfPopupURL(SPWeb web, Guid ListId)

        {

            string queryString = @"<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" 

                + Constants.XML_FILE_NAME + "</Value></Eq></Where>";



            string strURLColl = string.Empty;



            strURLColl = GetLeavSiteListData(web, ListId);



            SPDocumentLibrary list = (SPDocumentLibrary)web.Lists[Constants.PAGE_LIBRARY];

            SPQuery query = new SPQuery();

            query.Query = queryString;

            SPListItemCollection itemColl = list.GetItems(query);



            if (itemColl.Count > 0)

            {

                SPListItem item = itemColl[0];



                SPFile file = item.File;



                if (file.CheckOutStatus == SPFile.SPCheckOutStatus.None)

                {

                    file.CheckOut();

                    file.Update();

                }

                

                XmlDocument xmlDoc = new XmlDocument();

                using (Stream fileStream = file.OpenBinaryStream())

                {

                    xmlDoc.Load(fileStream);             



                    XmlNode rootNode = xmlDoc.DocumentElement;

                    XmlNode URLNode = rootNode.SelectSingleNode("URLString");                    

                   

                    URLNode.InnerText = strURLColl;



                    using (MemoryStream mStream = new MemoryStream())

                    {

                        xmlDoc.Save(mStream);



                        SPFolder folder = list.RootFolder;

                        file = folder.Files.Add(Constants.XML_FILE_NAME + ".xml", mStream, true);



                        if (file.CheckOutStatus != SPFile.SPCheckOutStatus.None)

                        {

                            file.CheckIn("Automatically checked in at " + System.DateTime.Now.ToLongTimeString());//签入

                            file.Publish("Automatically published at " + System.DateTime.Now.ToLongTimeString());//发布





                            if (list.EnableModeration)//判断是否启用内容审批

                            {

                                file.Approve("Automatically approved at " + System.DateTime.Now.ToLongTimeString());//审核

                            }

                        }



                    }

                }

            }

        }

你可能感兴趣的:(SharePoint)