0

サーバーサイドJSを介してWebページから記事を抽出するスクリプトを作成しました。(興味がある場合:http://pipes.yahoo.com/fb55/expandrに使用されます。)

内部リンクに少し問題があります。一部のページには、次のようなリンクが含まれています。

/subfolder/subpage.html

私がする必要があるのは、次のように、それらを修正してルートを設定することです。

protocol://secondlevel.firstlevel/subfolder/subpage.html

ページの処理にE4Xを使用しています。私は現在の不気味な試みを見せたくありません、それはバグが多くて遅いです。誰かが私のための解決策を持っていますか?

4

1 に答える 1

1

正規表現を使用してそれらを書き直すことができる場合があります。

var baseUrl = "http://somesite.com/somepage"
var root = baseUrl.match(/^[^:]+:\/\/[^\/]+\//)[0];
// "http://somesite.com/"

var HTML = "<a href='/testing'>test</a> and <a class='test' href=\"/foo/bar\"> </a>";

HTML.replace(/<a [^>]*href=["']\/([^'"]+)["']/ig, function (whole, url) {
  return whole.replace("/"+url, root+url);
});

// "<a href='http://somesite.com/testing'>test</a> and <a class='test' href=\"http://somesite.com/foo/bar\"> </a>"
于 2010-05-30T12:01:02.280 に答える