- PR -

GETされた値をXSQLからXSLへ渡す方法

1
投稿者投稿内容
jotarou
会議室デビュー日: 2001/10/04
投稿数: 3
投稿日時: 2002-05-10 22:04
つい最近xsqlとxslをはじめたものです。

http://sample/aaa.xsql?no=100&code=2000

上記にて、GETされたno=100とcode=2000をbbb.xsqlに投げて、結果no=100とcode=2000とsqlにて獲得されたnameの3つを表示させたいのですが、no=100とnameは表示できていますが、code=2000を表示させることができません。
bbb.xsqlにcode=2000のパラメータを受け入れて、そのままxslに引き渡す処理?をお教えください。もともと考え方が違っているかも知れませんので、ご指摘くだされば幸いです。よろしくお願いします。

【bbb.xsql】
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="bbb.xsl"?>
<xsql:query connection="xml" xmlns:xsql="urn:oracle-xsql">
select name from dept where id = '{@no}'
</xsql:query>
よねくら
常連さん
会議室デビュー日: 2002/04/24
投稿数: 29
投稿日時: 2002-05-13 19:33
手元に実行環境がないので、動作未確認ですが。
例えば次のように記述して

【bbb.xsql】
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="bbb.xsl"?>
<result connection="xml" xmlns:xsql="urn:oracle-xsql">
<code>{@code}</code>
<xsql:query>
select name from dept where id = '{@no}'
</xsql:query>
</result>

実行結果はたぶん次のようになるので

<result>
<code>2000</code>
<ROWSET>
<ROW num="1">
<name>XXX</name>
</ROW>
</ROWSET>
</result>

スタイルシートで次のように書けばcodeの値を
処理できるのではと思うのですが。

<xsl:template match="/">
<xsl:value-of select="result/code"/>
</xsl:template>
jotarou
会議室デビュー日: 2001/10/04
投稿数: 3
投稿日時: 2002-05-14 12:42
回答ありがとうございました。
早速変更して実施してみました。

結論から、実行結果は下記のようになり、code=2000はパラメータとして受け渡っていない?ものとなりました。

<result>
<code>{@code}</code>←値でなく、そのまま出力されている。
<ROWSET>
<ROW num="1">
<name>XXX</name>
</ROW>
</ROWSET>
</result>


【bbb.xsql】
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="bbb.xsl"?>
<result connection="xml" xmlns:xsql="urn:oracle-xsql">
<code>{@code}</code> 
    :
    :

ちなみに、bbb.xsqlの<code>{@code}</code>を<code>123456</code>に時下に入力すると結果はうまく表示されます。

http://sample/demo/aaa.xsql?no=100&code=2000 からbbb.xsqlに渡す時、単純に変数として渡っていないのでしょうか?
回答を付けていただいて、ありがとうございました。


よねくら
常連さん
会議室デビュー日: 2002/04/24
投稿数: 29
投稿日時: 2002-05-14 12:59
例えば次のようにすればいかがですか?

<xsql:query>
select '{@code}' AS code from DUAL
</xsql:query>
よねくら
常連さん
会議室デビュー日: 2002/04/24
投稿数: 29
投稿日時: 2002-05-14 13:04
次のようにすれば、XSQLに渡されたパラメータの一覧を
参照することができます。

<xsql:include-request-params/>
jotarou
会議室デビュー日: 2001/10/04
投稿数: 3
投稿日時: 2002-05-14 22:55
再度書き込みありがとうございました。
ご指摘のとおり下記のアクションハンドラーを使用することで解消できました。

<xsql:include-request-params/>

助かりました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)