需要帮助使用C#Regular Expression在标记标记之间插入内容

时间:2010-12-11 06:48:37

标签: c#

我正在尝试添加其他

  

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。

获得此任务的最佳途径是什么..

任何帮助将不胜感激..

由于 迪普

1 个答案:

答案 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");