zoukankan      html  css  js  c++  java
  • 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());//审核
                                }
                            }
    
                        }
                    }
                }
            }
    

  • 相关阅读:
    IMDB情感分类学习
    torchtext入门学习
    3.1日学习笔记|3.2日学习笔记
    2.24日学习笔记|2.26日学习笔记|2.27|2.28
    快慢指针问题
    2.21日学习笔记|2.22日学习笔记|2.23学习笔记
    dinic模板
    P1247 取火柴游戏 博弈nim
    博弈论
    P2161 [SHOI2009]会场预约 树状数组
  • 原文地址:https://www.cnblogs.com/dexter2003/p/2123470.html
Copyright © 2011-2022 走看看