我正在尝试添加其他
ASP:的SiteMapDataSource
基于控件id =“TopNavigationDataSource”的Delegate控件之间的标记标记。
我需要帮助来使用C#正则表达式添加此特定标记。
这将是输入
< SharePoint:DelegateControl runat =“server”ControlId =“TopNavigationDataSource”>
< Template_Controls >
< asp:SiteMapDataSource
ShowStartingNode="False"
SiteMapProvider="SPNavigationProvider"
id="topSiteMap"
runat="server"
StartingNodeUrl="sid:1002"/ >
< /Template_Controls >
< /SharePoint:DelegateControl >
Out Put应该是..
< SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" >
< Template_Controls >
< asp:SiteMapDataSource
ShowStartingNode="True"
SiteMapProvider="MyCustomNavigationProvider"
id="customSiteMap"
runat="server"/ >
< asp:SiteMapDataSource
ShowStartingNode="False"
SiteMapProvider="SPNavigationProvider"
id="topSiteMap"
runat="server"
StartingNodeUrl="sid:1002"/ >
< /Template_Controls >
< /SharePoint:DelegateControl >
注意:我不能使用任何第三方/免费dll。
获得此任务的最佳途径是什么..
任何帮助将不胜感激..
由于 迪普
答案 0 :(得分:0)
如果您绝对需要使用正则表达式,则可以执行以下操作:
yourMarkup = new Regex(@"\< SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" \>\s*\< Template_Controls \>\s*\< asp:SiteMapDataSource")
.Replace(yourMarkup, @"< SharePoint:DelegateControl runat=""server"" ControlId=""TopNavigationDataSource"" >
< Template_Controls >
< asp:SiteMapDataSource
ShowStartingNode=""True""
SiteMapProvider=""MyCustomNavigationProvider""
id=""customSiteMap""
runat=""server""/ >
< asp:SiteMapDataSource");