xslt、xmlについて質問です。


xml
<url>http://www.xxxxx.xxx.co.jp/</url>

とあるとき、

<xsl:variable name="SELECT_URL">
<xsl:value-of select="url"/>
</xsl:variable>

<a href="{$SELECT_URL}">ここをクリックして下さい</a>

とするのですが、xmlで指定しているurlが"http://www.test.co.jp/xxxx.xxx.html"のように"http://www.test.co.jp"を含んでいる場合は別ウィンドウで開くようにし、それ以外のurlの場合は同一ウィンドウでリンク先が開くようにしたい。

わかる方、回答お願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/10/15 22:29:02
  • 終了:2009/10/17 15:23:06

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912009/10/16 00:27:06

ポイント60pt

XSLT で条件分岐を行う方法はいくつかありますが、if-else 構文はないので今回の場合は choose を使用するのがよいかと思います。

条件式の中では文字列を含むかどうかの判定を行うために contains が使えるでしょう。


全体としては、下記のような感じでできないでしょうか。

  :
<xsl:variable name="SELECT_URL">
    <xsl:value-of select="url"/>
</xsl:variable>
<xsl:choose>
  <xsl:when test="contains(url, 'http://www.test.co.jp')">
      <a href="{$SELECT_URL}" target="_blank">ここをクリックして下さい</a>
  </xsl:when>
  <xsl:otherwise>
      <a href="{$SELECT_URL}">ここをクリックして下さい</a>
  </xsl:otherwise>
</xsl:choose>
  :

参考リンク

http://www.atmarkit.co.jp/fxml/rensai/rexml09/rexml09.html

http://www.envinfo.uee.kyoto-u.ac.jp/user/susaki/envinfo/xml_if....

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません