• 締切済み

タグの内容をxsl:variableのname属性に使いたい

立て続けに2つめの質問してしまい恐縮ですがよろしくお願い 致します。 やりたい事をストレートに記述しますと <work> <name>hoge</name> <x>0.5</x> </work> というwork要素があった場合に <xsl:template match="work"> <xsl:variable name="<xsl:value-of select="x"/>"> <xsl:value-of select="name"> </xsl:variable> </xsl:template> ということがしたいのですが、これではxsl:variableのnameの 箇所で当然エラーが出てしまい出来ません。 上記のように任意のタグの内容をxsl:variableのnameに使用 することは出来ないのでしょうか? よろしくお願い致します。

  • ym2
  • お礼率28% (2/7)
  • XML
  • 回答数1
  • ありがとう数2

みんなの回答

  • MetalKing
  • ベストアンサー率57% (15/26)
回答No.1

きっと、「変数名をタグで指定したものにしたい」ってことですよね? 仮に変数名が可変にできたとして、何がしたかったのでしょうか?

関連するQ&A

  • xsl:variableでの抽出条件の変更

    こんにちは、Khazadと申します。  xsl:variableで、xsl:apply-templates の抽出条件を変更したくて 下記のようなXSLを作成したのですが、うまくいきません。  原因がわかる方。または別の方法があればご教授お願いできないでしょうか?  パーサーはMSXML3.0です。 (試したこと) 1 テンプレート内に<xsl:value-of select='$frid'/>を挿入すると、   ちゃんと1が表示されます。 2 [@rid='{$frid}']の部分を[@rid='$frid']に変更しても抽出は   行われません。 3 [@rid='{$frid}']の部分を[@rid='1']にすると抽出されます。  以下XSLのソースです -------------------------------------------------------- <xsl:variable name = 'frid' select='1' ></xsl:variable> <xsl:template match="/"> <xsl:apply-templates select="ROOT//*[@rid='{$frid}']"/> </xsl:template> <xsl:template match="*[@rid='{$frid}']"> <xsl:apply-templates select="*"/> </xsl:template> --------------------------------------------------------

    • ベストアンサー
    • XML
  • xsl:variableについて

    お世話になります。xsl:variableについて質問です。 xsl:elementのnameを動的に指定したく、次のようにしました。 FireFox3 Beta 5にて、innerHTMLをtextareaに貼り付けて確認しました。 xml <testNode>aaa</testNode> xsl <xsl:variable name="el"><xsl:value-of select="name(.)"/></xsl:variable> <xsl:element name="$el">aiueo</xsl:element> こうすると、 aiueo のみ出力されました。希望する出力は <testNode>aiueo<testNode> です。 xsl:variableの使い方が間違っているのでしょうか?先程からずっとこれに悩んでいます。。。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XSLの中でHTMLタグが使えない

    XMLとXSLTを使って、Formの中のListのオプションを、XML から取ってきたいと思ってます。イメージ的には、下記 の○○○の中に、<xsl:value-of select="."/>を入れる ことによって、<option value="<xsl:value-of select="."/>"><xsl:value-of select="."/></option> の様にしたいのですが、<や>を&lt;や&gt;に変えても、 うまく表示されません。また、Selectタグの属性の Multipleも=サインが無いとかで使えませし,Inputタグ も、終了タグが無いため使えませんでした。どのように 対処したら良いのでしょうか?よろしくお願いしま す。 <select name="list1" size="10" id="select5"> <xsl:apply-templates/> </select> <xsl:template match="//name"> <option value="○○○">○○○</option> </xsl:template>

    • 締切済み
    • XML
  • 違う階層のテンプレートの変数を参照する方法を教えてください。

    以下のようにテンプレートAAAにある$naをテンプレートBBBから参照し、変数$nbをつくりたいと思っております。 いろいろと試して四苦八苦しております。 XSL初心者です、どなたかご教示願います。 ----------------------------------------------- <xsl:template match="AAA">  <xsl:variable name="na"><xsl:value-of select='@value' /></xsl:variable> </xsl:template> <xsl:template match="BBB"> <xsl:variable name="nb"><xsl:value-of select="$na" /></xsl:variable> </xsl:template>

    • ベストアンサー
    • XML
  • xsl:variable の使用方法

    こんにちは xml,xsl を今日はじめて使う初心者です。 変数を使おうとして下記のようなメッセージが出てしまいます。 >ここではキーワード xsl:variable を使用できません。 どうすればよろしいでしょう? area.xls: <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> (中略) </html> </xsl:template> <xsl:template match="変換結果"> <table align="left" border="1" width="1500" cellspacing="0" cellpadding="0"> <tr> (中略) </tr> <tr> (中略) <xsl:comment>合計 </xsl:comment> <th>数量</th> (中略) </tr> <xsl:variable name="coLor" select="white" /> <xsl:for-each select="row" order-by="+column0"> <tr bgcolor="$coLor"> <td width="200" align="right"> <xsl:value-of select="column0" /> </td> (中略) </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> ************************************************************* area.xml <?xml version="1.0" encoding="Shift_Jis"?> <?xml-stylesheet type="text/xsl" href="area.xsl" ?> <変換結果> <row row-Num='1'><column0>,4536163880211</column0> (中略) </row> </変換結果>

    • ベストアンサー
    • XML
  • xsl positionで…

    <goo> <name> <first>太郎</first> <last>田中</last> </name> <name> <first>次郎</first> <last>佐藤</last> </name> </goo> このような xml より、 <xsl:value-of select="//name[position() = 2]" /> とすると、"次郎 佐藤" となるのですが、個別に"次郎"だけを取得出来る方法はありますか? <xsl:template match="name"> <xsl:if test="position() = 2"> <xsl:value-of select="first"/> </xsl:if> </xsl:template> この方法を使用しないで解決したいと思っています。 いろいろ試してるのですが、うまく行きません…。 回答、よろしくお願いします。

    • ベストアンサー
    • XML
  • XSLのifがいまいち理解ができなく。

    if文をどうやればいいのかで悩んでしまいに詰まっている状態です。 URLがない場合は何も表示しないにしたいのですが、参考ページを見ても全くわからない状態。 test.xsl <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet> <xsl:template match="/"> <xsl:apply-templates select="page/message"/> </xsl:template> <xsl:template match="page/message"> <table> <tr> <td>名前</td> <td><xsl:value-of select="name"/></td> </tr> <tr> <td>URL</td> <td><a><xsl:attribute name="href"><xsl:value-of select="@url" /></xsl:attribute><xsl:attribute name="target">_blank</xsl:attribute><xsl:value-of select="@url" /></a></td> </tr> </table> </xsl:template> </xsl:stylesheet> xml <?xml version="1.0" encoding="utf-8"?> <page> <message url="http://yahoo.co.jp"><name>山田太郎</name></message> <message url=""><name>山田花子</name></message> </page>

    • ベストアンサー
    • XML
  • XMLをXSLを使いHTMLに変換したいのですが・・・・

    あるXML形式のXSL用に次のようにスタイルシートを作成致しました。(例) <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes" /> <xsl:template match="/"> <html lang="ja"> <head> <title>○○情報</title> </head> <body><xsl:apply-templates select="ProductInfo"/></body> </html> </xsl:template> <xsl:template match="Responce/Details"/> <h2><xsl:value-of select="Hid"/></h2> <h2><xsl:value-of select="TotalItems"/></h2> <h2><xsl:value-of select="TotalPages"/></h2> <h3><xsl:value-of select="ItemID"/></h3> <h3><xsl:value-of select="ShopID"/></h3> <h3><xsl:value-of select="ProductName"/></h3> <h3><xsl:value-of select="Price"/></h3> <h3><xsl:value-of select="ImageUrlSmall"/></h3> <h3><xsl:value-of select="ImageUrlMedium"/></h3> <h3><xsl:value-of select="mageUrlLarge"/></h3> <h3><xsl:value-of select="URL"/></h3> <h3><xsl:value-of select="MobileURL"/></h3> <h3><xsl:value-of select="Manufacture"/></h3> <h3><xsl:value-of select="Availability"/></h3> <h3><xsl:value-of select="Stock"/></h3> <h3><xsl:value-of select="StockInfinity"/></h3> <h3><xsl:value-of select="ItemDetail"/></h3> <h3><xsl:value-of select="SalesStatus"/></h3> <h3><xsl:value-of select="CategoryID"/></h3> </xsl:template> </xsl:stylesheet> とスタイルシートを作成いたしました。 変換するHMLは <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="○○.xsl"?> - <ProductInfo> - <Responce> <Hid>○○○○</Hid> <TotalItems>○○○○</TotalItems> <TotalPages>○○○○</TotalPages> - <Details> <ItemID>○○○○</ItemID> <ShopID>○○○○</ShopID> <ProductName>○○○○</ProductName> <Price>○○○○</Price> <Manufacture>○○○○</Manufacture> <Availability>○○○○</Availability> <Stock>0○○○○</Stock> <StockInfinity>○○○○</StockInfinity> <ItemDetail>○○○○</ItemDetail> <SalesStatus>○○○○</SalesStatus> <CategoryID>○○○○</CategoryID> </Details> </Responce> </ProductInfo> 以下<Details>のみ複数繰り返しされます。 この通りに作成したのですが、XMLファイルをウインドウに表示しようとしてもエラーが報告されます。 XSLに繰り返し用のタグを入れても、まったく表示されません。 ちなみにIE7を使用しています。 もし間違っている箇所が分かる方がいらっしゃいましたら、教えていただけませんか? よろしくお願いいたします。

    • ベストアンサー
    • XML
  • xslで変数をxpathに使いたい

    初めて、質問させていただきます。よろしくお願いします。 早速ですが、xslの中で、 <xsl:variable name="hensu">名前</xsl:variable> のように、変数を宣言し、その変数を、xpathとして以下のように使いたいのですが このままでは、文字列(名前)で表示されてしまいます。 <xsl:value-of select="$hensu" /> 変数をxpathに変換する方法はありますでしょうか?

    • 締切済み
    • XML
  • XSL : 変数について

    XSL : 変数について 初めて質問致します。 ご教示宜しくお願い致します。 ****** XML文書 ****** <root> <A>1</A> <B> <B_1>2</B_1> <B_2>3</B_2> </B> </root> ****** 質問 ****** xsl で、上記xml文書の<B>タグ配下 <B_1>2</B_1> <B_2>3</B_2> を変数に代入するにはどのようにすれば いいでしょうか?(タグ名も含めて) 下記の2つを試してみましたが、 いずれも 「2 3」となります。 ・ <xsl:variable name="hoo" select="B"/> ・<xsl:variable name="hoo"> <xsl:copy-of select="B"> </xsl:variable> 質問に不明瞭な点がありましたら ご指摘下さい。 宜しくお願い致します。

    • 締切済み
    • XML

専門家に質問してみよう