XML

このエントリーをはてなブックマークに追加
129nobodyさん
domをいじってて行き詰まってしまいました。
例えばXMLが以下のようにあるとして

<aa>
<bb id="1">cc1</bb>
<bb id="2">cc2</bb>
<bb id="3">cc3</bb>
</aa>

で、XSLT で表示させたいんですが、

<xsl:template match="aa/bb">
<html>
<body>
<xsl:if test="@id='1'"> ← @
<xsl:value-of select="." />
</xsl:if>
</body>
</html>
</xsl:template>

のようにし、domを使って@の部分の @id='1' を変数にしたいのです。ようするに@id=xとしたいのです。
で、xの値をformのselectなどを使って選択できるようにしたいのです。
まあようするにjavascriptからxsltの内容を少しだけ操作したいのですが、、。

項目が40くらいに増えそうなのでxsl:chooseを使うのは現実的ではないとは思います。
どうかご教授ください。お願いします。
130108:02/09/03 09:19 ID:???
>>129
私の場合、クライアントのmsxml.dllの事を考え、クライアントサイド(JavaScript)でなく
サーバーサイド(ASP)でやっつけてます。

MSXMLの4.0なら、まずXSLTで
  <xsl:param name="hoge"/>
をxsl:stylesheetの直下に置いて、
  <xsl:if test="@id=$hoge">
としておく。で、DOMでは
  xslProc.addParameter "hoge", 1
とする。
この、最後の1をフォームなりで取得した値にすればいいです。
まぁ、>>129の場合で言えばxですか。
addParameterについてはMSDNででも調べてみてください。

他のパーサーはわかんないです。