Sitecore布局增量合并

时间:2018-10-29 11:40:47

标签: xml merge sitecore delta sitecore8.1

对于大多数项目,项目和模板之间的同步以某种方式中断了。如果我们将新的渲染图放到模板标准值中,那么它将无法反映所有项目,因此我们有很多项目,因此决定编写一个实用程序来同步布局增量

方法: 1-从项目中获取Delta及其标准值 2-重置项目演示详细信息 3-设置版式变化量

我的三角洲如下

LayoutField layoutDestinationItem = destinationItem.Fields[Sitecore.FieldIDs.LayoutField];
XmlDeltas.GetDelta(layoutDestinationItem.Value, layoutStandardItem.Value)

Delta:

<r xmlns:p="p" xmlns:s="s" p:p="1"><d id="{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}"><r uid="{3E510D2E-BC34-43A7-BBB3-3CE913E0A3B7}"><p:d /></r><r uid="{FFCC413D-67CA-4DA1-BC09-A834A8328B6B}" p:after="*[1=2]" s:id="{9C734712-2F25-4A02-A468-2992B4EEA0F6}" s:ph="head" /><r uid="{79FC922A-87CD-4F24-8B45-808F91AA8F14}"><p:d /></r></d></r>

标准值:

<r xmlns:xsd="http://www.w3.org/2001/XMLSchema" ><d id="{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}" l="{0450FC97-4E1C-416A-B1D8-3D8F9D8504B8}"><r id="{86D366D2-C902-4444-A872-86C11A4019C1}" ph="header" uid="{4626A07D-4B6E-44D7-A66F-7EE6ED3D9EFE}" /><r id="{D58E531B-AAA5-49EC-9CE3-2584E29693E0}" ph="header" uid="{4F497EA9-7B75-4454-8A54-F6FDDA6FA801}" /><r id="{DC007F22-3B55-4174-BA75-99B72D385D27}" ph="mainnavigation" uid="{A52F5D02-3F8E-4E4E-811E-C51F13DA9649}" /><r id="{7BF3267F-9EEF-4140-95EB-1168147D0C4F}" ph="main" uid="{5DA4D11B-F4B3-48E4-9E7F-08F713BDF795}" /><r id="{B9B71E0B-7574-4770-9D24-3B62BBBA8CC7}" ph="breadcrumb" uid="{CF4D3698-0CB2-404A-8759-0D3C4FEB741B}" /><r id="{D5BD06B8-D04D-499B-813A-2E319AF34B31}" ph="footertop" uid="{2110C6C7-6BAC-4531-A253-DFEA2A657D90}" /><r id="{D3B8475A-3F82-41FD-A583-CC7F20099047}" ph="footerbottom" uid="{B5167FA9-11EE-4861-AD9B-2F29CC2C9D1B}" /><r ds="{68E5397B-3031-46B1-B13B-4FA575A7AE5E}" id="{F198B838-0367-4D23-8DA9-42132A92565B}" par="" ph="notifications" uid="{3E510D2E-BC34-43A7-BBB3-3CE913E0A3B7}" /><r id="{30C98E4E-B8E3-4ED0-8E01-BF060F528C1F}" ph="BanalanceInquiry" uid="{79FC922A-87CD-4F24-8B45-808F91AA8F14}" /></d></r>

但是在像下面那样应用delta之后,我得到了item的初始值。

XmlDeltas.ApplyDelta(resetItemLayouts.Value, getDalta)

在Apply delta上方,如上所述使用了dlta和标准布局字段值,但是在合并后,它删除了后两个组件(模板标准值中新添加了该值,但项中未添加)

<r xmlns:xsd="http://www.w3.org/2001/XMLSchema" ><d id="{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}" l="{0450FC97-4E1C-416A-B1D8-3D8F9D8504B8}"><r id="{86D366D2-C902-4444-A872-86C11A4019C1}" ph="header" uid="{4626A07D-4B6E-44D7-A66F-7EE6ED3D9EFE}" /><r id="{D58E531B-AAA5-49EC-9CE3-2584E29693E0}" ph="header" uid="{4F497EA9-7B75-4454-8A54-F6FDDA6FA801}" /><r id="{DC007F22-3B55-4174-BA75-99B72D385D27}" ph="mainnavigation" uid="{A52F5D02-3F8E-4E4E-811E-C51F13DA9649}" /><r id="{7BF3267F-9EEF-4140-95EB-1168147D0C4F}" ph="main" uid="{5DA4D11B-F4B3-48E4-9E7F-08F713BDF795}" /><r id="{B9B71E0B-7574-4770-9D24-3B62BBBA8CC7}" ph="breadcrumb" uid="{CF4D3698-0CB2-404A-8759-0D3C4FEB741B}" /><r id="{D5BD06B8-D04D-499B-813A-2E319AF34B31}" ph="footertop" uid="{2110C6C7-6BAC-4531-A253-DFEA2A657D90}" /><r id="{D3B8475A-3F82-41FD-A583-CC7F20099047}" ph="footerbottom" uid="{B5167FA9-11EE-4861-AD9B-2F29CC2C9D1B}" /><r id="{9C734712-2F25-4A02-A468-2992B4EEA0F6}" ph="head" uid="{FFCC413D-67CA-4DA1-BC09-A834A8328B6B}" /></d></r>

我担心ApplyDelta会接收两个xml文件,并且似乎试图合并,但无法正确合并。

Sitecore版本: Sitecore 8.1 修订版。 160519

**它也在新实例中发生。

更新:如果我仅按实用程序或原始值设置了增量,那么它将显示旧的渲染,不包括添加到模板标准值中的新渲染。如果只有上面给出的增量,它如何获得合并的渲染,因为只有

已移至Sitecore stackexchange

0 个答案:

没有答案