Разбор XML-файла и сопоставление со столбцами в списке SharePoint - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть XML-файл в следующем формате. У меня есть список sharepoint, созданный с помощью столбцов URL, заголовка и т. Д. Мне нужно вставить значения из XML в список SP с помощью CSOM. Может кто-нибудь предложить код.

<?xml version="1.0" encoding="UTF-8"?>

-<Sites>

-<Site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Url>https://ccepdev.sharepoint.com/sites/CCEP</Url>

<Title>CCEP</Title>

<WebTemplateTitle>Team site (classic experience)</WebTemplateTitle>

<WebTemplateName>STS#0</WebTemplateName>

<CreatedDate>2019-04-15T16:59:31+05:30</CreatedDate>

<LastItemModifiedDate>2019-04-23T13:26:55+05:30</LastItemModifiedDate>

<HasUniquePermissionValue>true</HasUniquePermissionValue>

<Description/>

<SiteCollectionUrl>https://ccepdev.sharepoint.com/sites/CCEP</SiteCollectionUrl>

<IsDeprecated>false</IsDeprecated>

<SubWebUrls/>

<ServerRelativeUrl>/sites/CCEP</ServerRelativeUrl>

<IsPublishingFeatureActivated>false</IsPublishingFeatureActivated>

<Language>1033</Language>

<IsNonDefaultMasterPage>false</IsNonDefaultMasterPage>

<CustomMasterPageUrl>/sites/CCEP/_catalogs/masterpage/seattle.master</CustomMasterPageUrl>

<MasterPageUrl>/sites/CCEP/_catalogs/masterpage/seattle.master</MasterPageUrl>

</Site>

</Sites>

---------------------------------------------------------------

1 Ответ

0 голосов
/ 25 апреля 2019

Используйте Linq to XML, чтобы выбрать узел / атрибут, а затем добавить в SharePoint с помощью CSOM.

XElement xmlFile = XElement.Load(@"C:\Lee\SiteData.xml");

            var data = from item in xmlFile.Descendants("Site")
                                          select new
                                          {
                                              ID = item.Element("Url").Value,
                                              Title = item.Element("Title").Value,
                                              WebTemplateTitle= item.Element("WebTemplateTitle").Value
                                              //more 
                                          };


using (var context = new ClientContext("https://tenant.sharepoint.com/sites/Developer"))
            {                 
                Console.ForegroundColor = ConsoleColor.Green;
                string password = "password";
                SecureString sec_pass = new SecureString();
                Array.ForEach(password.ToArray(), sec_pass.AppendChar);
                sec_pass.MakeReadOnly();
                context.Credentials = new SharePointOnlineCredentials("lee@tenant.onmicrosoft.com", sec_pass);


                SP.List oList = context.Web.Lists.GetByTitle("listtitle");
                ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
                ListItem oListItem = oList.AddItem(itemCreateInfo);
                oListItem["Title"] = data.Title;                

                oListItem.Update();

                context.ExecuteQuery();
}
...