0

我正在使用 cfhttp 来获取网站。我想替换正文标签内的所有链接。重要的是,我不想在头脑中搞乱样式表等。

我想做以下事情:

在外部网页正文中,我们可能会找到一个链接:

<a href="http://www.externallink.com">External Link</a>

我想用以下内容替换它:

<a href="http://www.mydomain.com?url=http://www.externallink.com">External Link</a>

使用 Replace() 很容易,但我也替换了所有链接的样式表等。我只想编辑可点击链接的 href。

4

1 回答 1

0

我修改了 HTML 文档的 DOM,使用 jsoup 库将跟踪参数添加到出站电子邮件中的链接。(jsoup 是一个开源的 Java HTML 解析器,可以从http://jsoup.org/下载。)你会注意到它使用了类似 jQuery 的选择方法,但是所有的操作都是在服务器端执行的(I'我还使用它从 CFHTTTP 获取的 HTML 中删除广告。)

这是一个工作 ColdFusion 代码的快速示例,它将在服务器端完全按照您的需要:

<CFSET TheHTML = CFHTTP.FileContent>
<CFSET jsoup = CreateObject("java", "org.jsoup.Jsoup")>
<CFSET TempHTML = jsoup.parse(TheHTML)>
<CFLOOP ARRAY="#TempHTML.select('a')#" INDEX="ThisLink">
    <CFSET TheLink = thisLink.attr("href").toString()>
    <CFSET TheHTML = replace(TheHTML, TheLink, "http://mywebsite.com/?u=" & URLEncodedFormat(TheLink))>
</CFLOOP>
于 2013-11-25T20:31:23.570 回答