使用数据集将共享点列表数据与数据类型一起保存到xml

时间:2012-08-01 08:27:44

标签: c# xml sharepoint powershell dataset

我有下面的代码,通过使用数据集将共享点列表保存到xml。在代码下方,您将看到xml格式的输出。

我想要一些帮助:

  1. 如何使用数据集将数据与xml中的数据类型一起保存?
  2. 示例:我想要的结果或类似的结果,这样当我读取xml文件时,我可以将它们转换回正确的数据类型

    <NewDataSet>
      <Report_x0020_List>
        <Title **Type="Text"**>My title</Title>
        <RequesterID **Type="Number"**>1</RequesterID>
        <AdditionalRemarks **Type="Note"**>Additional Remarks </AdditionalRemarks>
        <DeliveryDate **Type="DateTime"**>2012-07-13T00:00:00+02:00</DeliveryDate>
        ...... and so on
      </Report_x0020_List>
    </NewDataSet>
    

    2)现在,xml文件的根名为NewDataSet。有没有办法可以在保存为xml之前对其进行操作?我想控制元素的命名方式。

    -----期望的结果--------

    <MyReportList>
       <Report>
    
       </Report>
    </MyReportlist>
    

    ----不喜欢这个------

    <NewDataSet>
    
    </NewDataSet>
    

    3)如果无法保存数据类型,您能告诉我如何将数据从xml字符串转换为sharepoint中的正确类型吗?


    我正在使用的代码

    if($lists.List.Length -gt 0)
        {
            foreach ($list in $lists.List)
            {
                $listName = $list.Attributes.Item(0).Value
    
                $myList=$spweb.Lists[$listName]
    
                if($myList -ne $null)
                {
    
                     if ($myList.Items.Count -gt 0)
                    {
                        $spQuery = New-Object Microsoft.SharePoint.SPQuery
                        $spQuery.Query = $query
                        #$myList.GetItems($spQuery).GetDataTable(); 
                        $dt = $myList.GetItems($spQuery).GetDataTable()
    
    
                        $ds = New-Object System.Data.DataSet
                        $ds.Tables.Add($dt)
    
                        $ds.WriteXml("$filePath$fileName")
                    }
                }
            }
    
        }
    

    我得到的结果

    <NewDataSet>
      <Report_x0020_List>
        <Title>My title</Title>
        <RequesterID>1</RequesterID>
        <AdditionalRemarks>Additional Remarks </AdditionalRemarks>
        <DeliveryDate>2012-07-13T00:00:00+02:00</DeliveryDate>
        <DueDate>2012-07-14T00:00:00+02:00</DueDate>
        <Format>TXT</Format>
        <Source>;#ASTV;#BS;#</Source>
        <Frequency>Once</Frequency>
        <Hold>1</Hold>
        <MoreInformation>More qsd sgvfsdfsdf Information </MoreInformation>
        <Owner>sp_user1;#19;#sp_user2</Owner>
      </Report_x0020_List>
    </NewDataSet>
    

0 个答案:

没有答案