私はシンプルなアプリを持っており、ウェブページからすべてのリンクを取得します。libexml2を使用してhtmlを解析し、httpリクエストのQtQNetworkAccessManager内にあるhtmlリンクを抽出します。ここで問題となるのは、たとえば次のような場合に、リンクのホスト名を自動的に検出する方法です。
<a href="thelink.html" >
or
<a href="../../../thelink.html" >
or
<a href="../foo/boo/thelink.html" >
i need to convert it to full host path like :
( just example .. )
<a href="http://www.myhost.com/thelink.html" >
or
<a href="http://www.myhost.com/foo/boo/thelink.html" >
or
<a href="http://www.myhost.com/m/thelink.html" >
プログラムでそれを行う方法はありますか?文字列操作を手動で行わずに
あなたがperlを知っているなら、それは呼ばれます:可能であれば:http ://search.cpan.org/~rse/lcwa-1.0.0/lib/lwp/lib/URI/URL.pmから相対URLを返します
$ url-> rel([$ base])
動作しないコード例(Qt) http://qt.digia.com/support/
QString s("/About-us/");
QString base("http://qt.digia.com");
QString urlForReq;
if(!s.startsWith("http:"))
{
QString uu = QUrl(s).toString();
QString rurl = baseUrl.resolved(QUrl(s)).toString();
urlForReq = rurl;
}
urlForReqの値は「/About-us/」です。