需要使用C#正则表达式在标记标记之间插入内容的帮助吗

需要使用C#正则表达式在标记标记之间插入内容的帮助吗,c#,C#,我正在尝试添加一个额外的 asp:SiteMapDataSource 基于控件id=“TopNavigationDataSource”的委托控件之间的标记 我需要这里的帮助来使用C#正则表达式添加这个特定的标记 这将是输入 我们应该 < SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" > < Template_Controls >

我正在尝试添加一个额外的

asp:SiteMapDataSource

基于控件id=“TopNavigationDataSource”的委托控件之间的标记

我需要这里的帮助来使用C#正则表达式添加这个特定的标记

这将是输入





我们应该

< 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

完成这项任务最好的方法是什么

任何帮助都将不胜感激

谢谢
Deepu

如果您确实需要使用正则表达式,可以执行以下操作:

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");
yourMarkup=new Regex(@“\\s*\\s*\


谢谢你,弗雷德里克。。但是我在页面中有两个委托控件…这将完成整个替换。。是否有任何方法可以根据委托控件的控件id只执行一次。也可以使用String.Replace实现同样的目的吗?@user209291,您可以通过将
SharePoint:DelegateControl
添加到匹配表达式来为正则表达式提供更多上下文。我相应地更新了我的答案。使用
String.Replace()
是可能的,但更棘手的是:空白变得重要,因此您必须确保您的标记格式始终与问题中的格式相同。感谢您的支持,内容将存储在数据库中的空白bcoz没有授权人。所以我只能坚持使用Regx。添加的附加标记是一种特性,用户可以在代码用于场景时打开/关闭它。我该如何关闭额外的标记。谢谢迪普
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");