【问题标题】:Remove HTML tags for creating contextual links删除用于创建上下文链接的 HTML 标记
【发布时间】:2012-10-03 16:18:14
【问题描述】:

我在 ASP.NET 中编写了一个函数来创建上下文链接。它从 Tridion 中组件的描述字段中获取数据。我正在使用“RenderComponentField”从描述字段中挑选数据,该字段使用所有 HTML 标记挑选完整的数据源。

代码运行良好。但是,它有时会在获取我们想要在某些 HTML 标记(如锚标记等)中创建上下文链接的“文本”时失败。它从 HTML 标记中选择文本并在那里创建链接本身,这会破坏 HTML。

就像,我们想为文本“dummy”创建上下文链接,并且我们的 HTML 中有一个锚链接

<a href="http://www.dummy.com">Dummy</a>

一旦在“href”中找到虚拟文本,它就会立即创建链接,从而破坏 HTML。

请为此提供解决方案。可能是一个绕过 HTML 标记或任何类似内容的正则表达式。

干杯, 阿努巴夫

【问题讨论】:

  • 嗨,恐怕这没什么意义,也许您可​​以提供您的代码和有关您正在使用的架构的更多详细信息,以及“tridion”为您提供的内容以及您的内容想看发布
  • @johnwinter 对上面的文字做了一些小的改动。希望这能帮助你清楚地理解这个问题。问候,阿努巴夫

标签: regex tridion tridion-2011


【解决方案1】:

我不太明白这个问题,“上下文链接”是什么意思。您说您从“描述”字段中选择数据,它是什么类型的字段? (我假设它是一个 RTF,因为您说“它使用所有 HTML 标签获取数据的完整来源”)

您能否发布一个您期望获得的 html 示例以及您实际获得的内容?

【讨论】:

  • 嗨,上下文链接的概念非常简单。你有一个关键字说'abc'。每次在网站上的一段文本中找到它时,您都希望将其转换为 URL。你说的对。我在这里谈论的文本是富文本格式。我想说的是,我的代码选择了文本的来源,如果它在 html 中的任何位置找到关键字,它就会在此处创建一个链接并破坏 HTML。我已经编辑了我上面提出的问题。希望这能帮助您理解问题陈述。问候,阿努巴夫
  • 仍然不清楚,您能否在@@RenderComponentField()@@ 执行之前发布 HTML 输出、您在模板生成器(或发布者)中收到的错误消息以及之后您期望的 HTML 输出?另外,你写的是一个源函数?还是 c# 模板 Building Block?
【解决方案2】:

如果你想使用正则表达式,你可以像这样使用它

 search = "(dummy)";
    replace = "<a href=\"$1\" target=\"_blank\">$1</a>"; 
     Regex.Replace(stringToSearch, search, replace);

但不确定您的要求,因此无法建议在何处使用上述代码。

【讨论】:

    猜你喜欢
    • 2015-12-12
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多