• ベストアンサー

URI引数の書き換え

こんにちは。 ASP.NET2.0を使っています。 文字列として渡されたURIの引数を入れ替えたいのですが、 なにかよい方法はないものでしょうか? 例えば、 http://xxxxxx/yyyy.aspx?A=XXXX&B=YYYY といった形である場合に、A=XXXXを入れ替えて、 http://xxxxxx/yyyy.aspx?A=ZZZZ&B=YYYY としたいのです。 このとき、引数にAがなく、 http://xxxxxx/yyyy1.aspx?B=YYYY といった形であった場合にはなにもしません。 また、A以外の引数やパスの部分は任意です。 もちろん、XXXXの部分も不定です。 言語はC#を使っています。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2
titokani
質問者

お礼

URL加工専用のクラスでもないものかと思ったのですが、どうもないようですね。 結局、String.Splitを使って処理できました。 ありがとうございました。

その他の回答 (2)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.3

No1, No2さんのやり方に加え、Global.asax のApplication_BeginRequestまたは、IHttpModuleを継承したカスタムクラスを作って、BeginRequestイベントでURLをReWriteできるものを作る必要があります。 HttpContext.Current.RewritePathでできると思いますので この辺りをキーワードにして、試行錯誤、調べながらやって頂けたらと思います。

titokani
質問者

お礼

情報ありがとうございます。 BeginRequestイベントを使うのは、自分自身のページが呼ばれた際に、引数を加工したい時、ということでしょうか? 今回は自分自身が呼ばれた時ではなくて、他のページを呼ぶ際のURIの加工の方法でした。わかりずらくて申し訳ありません。 ともあれ、ありがとうございました。

回答No.1

正規表現なり文字列操作なりで、パラメータを切り出して、 それを入れ替えて再構成するという手順が無難じゃないかと。 切り分けに関しては試行錯誤するしかないかも。

titokani
質問者

お礼

お返事ありがとうございます。先日もお世話になりました。 こういった場合の文字列操作には、どんな関数があるのでしょうか? C/C++ならstrtok、perlならsplitあたりを使うところなのですが、 .NET/C#の場合にはなにか便利な関数はありますでしょうか?

関連するQ&A

  • テキストファイルをエクセルにコピーするマクロ

    エクセルマクロの初心者です 以下のようなテキストファイルをエクセルにコピーするマクロを作りたいです。 1、ボタンをクリックするとテキストファイルを選択する画面になる 2、テキストファイルを選択すると、その中から欲しい行のみエクセルのsheet3のA1、B1の順にコピーされる 3、テキストファイルのコピーしたい行はキーワードの間のもの 例(キーワードをAとBとする) xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy zzzzzzz zzzzzzz z zzzz,B このような形式のAとBの間にあるyyyyy yyyyyy yyyyyy,yyyyをコピーしたい xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy xxx xxxx,xxxxxx xxxx,A ttttt tttttt tttttt,tttt zzzzzzz zzzzzzz z zzzz,B このような場合も混在し、このときはtttt tttttt ttttt,ttttのみコピーする つまり xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy zzzzzzz zzzzzzz z zzzz,B xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy xxx xxxx,xxxxxx xxxx,A ttttt tttttt tttttt,tttt zzzzzzz zzzzzzz z zzzz,B このようなテキストに対して実行すると、Sheet3に yyyyy yyyyyyy yyyyyy,yyyy ttttt tttttt tttttt,tttt となるようにしたい 詳しい方、知恵を貸してください よろしくお願いします。

  • URIからURIへの相対URIの求め方

    URI uri1 = URI("./a1/a2/a3");(もしくはURI("C:/a1/a2/a3")) と URI uri2 = URI("./b1/b2/b3");(もしくはURI("C:/b1/b2/b3")) という2つのURIがあって、 uri1からuri2への相対パス ../../../b1/b2/b3 を求めたいのですが、 Javaの標準ライブラリか何かで、 このアルゴリズムはサポートされていないでしょうか。 ちなみに、目をつけてみた uri1.relativize(uri2) では、 ./b1/b2/b3 の結果になってしまいます。 自前で作成したものにバグが見つかったので、 できれば広く使われているモジュールを使用したいのです。

    • ベストアンサー
    • Java
  • ASPで?以外の文字ででQueryStringを受け取りたい

    Perlでは、 http://xxxx/read.cgi/yyyy/cccc/ というアドレスでread.cgiにyyyy とccccを 環境変数PATH_INFOをつかって引数にできますが、 ASPでは http://xxxx/read.asp/yyyy/cccc/ では、IISが404を返してきます。 http://xxxx/read.asp?yyyy/cccc/ とすればアクセスできることは確認しましたが、 read.asp?yyyyではなくread.asp/yyyy でアクセスできるようにする方法はありますか?

  • EXCELで2シート間で同一品番チェック

    いろいろと過去の事例等を確認したのですが、わからないため質問させてください。 1つのEXCELファイルのAシート(旧)とBシート(新)の品番を比較し、 同一品番があれば、その横にあるAシートの日付をBシートにコピーしたい。 Aシート            Bシート          Bシート    A列   B列       A列   B列       A列  B列 日付  品番       日付  品番        日付  品番  8/23 XXXX          XXXX    →   8/23 XXXX 8/25 YYYY          ZZZZ         8/30 ZZZZ 8/30 ZZZZ          AAAA             AAAA と言うようなVBAを作りたいのですが、上手く行きません。 Aシート及びBシートの品番の最後は空白です。 何度やっても上手く行きませんので、どなたかご教授願いたく思います。 以上、よろしくお願い致します。

  • DOSのコピーコマンド

    このカテゴリーで良いかどうかわかりませんが、教えてください。(説明が下手ですみませんが) Cドライブのあるフォルダーの中のファイル(1つまたは複数)をDドライブにコピーするバッチファイルを作ろうと思います。 たとえばyyyyフォルダーのzzzzをコピーする場合は次のような1文です。 xcopy c:\yyyy\zzzz.* d:\ /e この時、フォルダー名にスペースがあるときはどうしたらいいのかわかりません。 たとえばc:\windows updateのようなフォルダー名の場合 xcopy c:\yyyy xxxx\zzzz.* d:\ /e では動きません(yyyyとxxxxの間にスペースがあるから)。 この場合DOSコマンドをどう書けば良いのか教えてください。

  • メソッド定義の際の引数で

    楽しいRuby第4版のp.120で def a(a, b: 0, c:0)  [a, b, c] end のように、必須の引数とキーワード引数を混在 させることができると説明があったので試しに def meth(a, b: 2, c: 3, *args)  [a, b, c, args] end p meth(1,2,3) のように、必須の引数とキーワード引数と不定の 引数を混在させたところエラーが返りました。 やはり、不定の引数*argsまで混在させられないの でしょうか? irbで試すとメソッド定義をendで括った瞬間に エラーが返りましたんで、きっとこれが原因だと 思うのですが。

    • ベストアンサー
    • Ruby
  • SQL カラムの値ごとの集計

    例えばテーブル名test01にカラムhogeとstatがあるとします。 statにはaまたはbの値が入ってます。 XXXX a XXXX b XXXX a XXXX a YYYY a YYYY b test01のテーブルが上記の様な場合、以下の様に集計したいです。 hoge a b (ヘッダ) XXXX 3 1 YYYY 1 1 どのようにSQLを書いたら良いか教えて下さい。 以上、よろしくご指導の程お願い申し上げます。

  • bahsの引数について

    大変簡単な質問で恐縮なのですが、シェルスクリプトの引数(複数)を受け取り受けとったパスの中からファイル名だけを取り出すというのはどのようにするのでしょうか? a=$# b=$( basename $# ) echo $b こちらを実行すると引数の個数のみ表示されてしまいます。 そうではなくファイル名を個数分だけ表示さたいです。

  • 引数に関して

    例えば、 C,B(C),A(B)という3つの関数があるとき、 それぞれをfunctionで書こうとすると、 Bの引数は-(C) Aの引数は-(B) でいいのでしょうか!? Aのルーチンには見た目上Cはでてこないので(CはBに包括されているため)、引数はBだけでいいのでしょうか?(☆部分) 説明不足で伝わっていないといけないので、サンプル載せときます。 ☆ function func_A(B) or (B,C) implicit none real*8 func_A,func_B,B,val * B=funcB(C) * val=(1.0d0-B)*3.0d0+B*7.0d0 func_A=val return end ------------------------------------- function func_B(C) implicit none real*8 func_B,func_C,C,val * C=func_C * val=C+5.0d0 func_B=val return end ---------------------------------- function func_C implicit none real*8 val * val=3.0d0 func_C=val return end ------------------------- Aの引数としてCも載せるのが正しい気がしますが、自信がありません。ご意見聞かせて下さい。

  • 引数エラーについて

    下記Javascriptに引数(s1=10,s2=12345)を与えるとうまく動作するのですが 引数(s1=1A,s2=12345)を与えた場合は 「エラー:')'がありません。」とエラーになります。 文法的にどこかがおかしいのだと思うのですが・・・どこがおかしいんでしょうか? よろしくお願いします。 <SCRIPT type="text/JavaScript"> <!-- function new_Window(s1,s2) { var sa=s1; var sb='&s2=' + s2; var uri="hoge.php?s1="; var url = uri.concat(sa, sb); wnd = open( url ,"newwindow","scrollbars=yes","width=900","height=500"); } //--> </script>

専門家に質問してみよう