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());//审核
                                }
                            }
    
                        }
                    }
                }
            }
    

  • 相关阅读:
    PHP中each与list用法分析
    三大范式通俗讲解
    数据库三大范式详解
    利用JS制作简便计算器
    CSS下拉列表错误纠正
    下拉列表
    CSS选择器、标签,div的位置。
    php注册审核
    php分页查询
    php投票练习
  • 原文地址:https://www.cnblogs.com/dexter2003/p/2123470.html
Copyright © 2011-2022 走看看