Advertisement
tnewhook

Import XML to Sharepoint

Sep 19th, 2016
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Add-Type -Path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll'
  2. Add-Type -Path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll'
  3.  
  4. function CreateWikiPage()
  5. {
  6. [CmdletBinding()]
  7. param(
  8.         [Parameter(Mandatory=$true)][string]$webUrl,
  9.         [Parameter(Mandatory=$false)][System.Net.NetworkCredential]$credentials,
  10.         [Parameter(Mandatory=$true)][string]$pageName,
  11.         [Parameter(Mandatory=$true)][string]$pageContent,
  12.         [Parameter(Mandatory=$false)][string]$XmlInput
  13.     )
  14.             $templateRedirectionPageMarkup = '<%@ Page Inherits="Microsoft.SharePoint.Publishing.TemplateRedirectionPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> <%@ Reference VirtualPath="~TemplatePageUrl" %> <%@ Reference VirtualPath="~masterurl/custom.master" %>';
  15.             $credentials = New-Object System.Net.NetworkCredential('***', '***')
  16.             $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
  17.             $ctx.Credentials = $credentials
  18.  
  19.  
  20.             $wikiPages = $ctx.Web.Lists.GetByTitle("Pages")
  21.             $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load")
  22.             $listLoad = $load.MakeGenericMethod([Microsoft.SharePoint.Client.List])
  23.             $listLoad.Invoke($ctx,@($wikiPages,$null))
  24.             $ctx.ExecuteQuery()
  25.  
  26.  
  27.             $file = New-Object Microsoft.SharePoint.Client.FileCreationInformation
  28.             $file.Url = $pageName+='.aspx'
  29.             $file.Content = [System.Text.Encoding]::UTF8.GetBytes($templateRedirectionPageMarkup)
  30.             $file.Overwrite = $true
  31.  
  32.  
  33.             $wikiFile = $wikiPages.RootFolder.Files.Add($file)
  34.             $fileLoad = $load.MakeGenericMethod([Microsoft.SharePoint.Client.File])
  35.             $fileLoad.Invoke($ctx,@($wikiFile,$null))
  36.  
  37.             $wikiPage = $wikiFile.ListItemAllFields
  38.             $wikiPage["PublishingPageContent"] = $pageContent
  39.             $wikiPage["PublishingPageLayout"] = "/sites/testWiki/_catalogs/masterpage/CustomWiki.aspx, CustomWiki"
  40.             $wikiPage.Update()
  41.             $ctx.ExecuteQuery();
  42.  
  43. }
  44.  
  45. [xml]$pagesXML = Get-Content F:\BoggleMigration\BoggleData.xml
  46. if ($pagesXML -eq $null) { return }
  47. $webUrl='http://infostore/sites/testwiki'
  48. $pagesXML.Pages.Page | ForEach-Object {
  49.     $credentials = New-Object System.Net.NetworkCredential('username', 'password','url')
  50.     $PageName = [string]$_.Title
  51.     write-host 'page name: ' $PageName.Title
  52.     $PageContent = [string]$_.Content
  53.     write-host 'content: ' $PageContent|Get-Member
  54.     CreateWikiPage $webUrl $credentials $pageName $pageContent
  55.     Write-Host "Creating " $PageName
  56. } #End ForEach Loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement