value-ofの値を属性値とするには
- XSLファイル内で、value-ofの値を属性値とする方法を教えてください。
- XSLファイル内で、value-ofの値を属性値とする方法について教えてください。
- XSLファイル内で、value-ofの値を属性値とする方法を教えてください。構文エラーが発生しています。
- ベストアンサー
value-ofの値を属性値とするには
やりたいことをストレートに書くとこうなんです。 XSLファイル内 <xsl:for-each select="USERS/USER/"> <input name="UserID" type="hidden" value=" <xsl:value-of select="@ID"/> "/> </xsl:for-each> 当然構文エラーでますよね… この回避方法をご存じの方いませんか? ちなみに <xsl:for-each select="USERS/USER/"> <xsl:value-of select="@ID"/> </xsl:for-each> で、値は取れたんですけど…大雑把な説明で申し訳ありません。
- XML
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> とありますが、これはバージョンが古いから"{","}"が使えないだけかもしれませんね。 そのままのバージョンで使うなら <xsl:element name="a"> <xsl:attribute name="href"><xsl:value-of select="@href" /></xsl:attribute> こちら </xsl:element> などとするといいようです。 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 私が使っているバージョンなら"{","}"は使えていますよ。
その他の回答 (1)
- nonchi
- ベストアンサー率43% (16/37)
<input name="UserID" type="hidden" value="{@ID}"/> ではないですか?
補足
{@ID}は思いついたのですが何故か“{@ID}”とそのまま表示してしまうんです。 設定の問題なのでしょうか… ソースを丸投げします(不本意ですが…) ↓link.xsl内容 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <head> <meta content="text/html; charset=shift_jis" http-equiv="Content-Type"/> <title><xsl:value-of select="/Table/@title"/></title> </head> <body style="font-size: 10pt" topmargin="0"> <xsl:apply-templates select="Table/Data"/> </body> </html> </xsl:template> <xsl:template match="Data"> <table border="1"> <caption> <xsl:value-of select="@caption"/> </caption> <xsl:for-each select="Anchor"> <tr><td> <a href="{@href}">←★ <xsl:value-of select="@href"/>←☆ <xsl:value-of select="@name"/> </a> </td></tr> </xsl:for-each> </table> <hr/> </xsl:template> </xsl:stylesheet> ↓data.xml内容 <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="link.xsl"?> <Table title="タイトル"> <Data caption="その1"> <Anchor href="http://www.kaa.ne.jp" name="かぁ"/> <Anchor href="http://www.kii.ne.jp" name="きぃ"/> <Anchor href="http://www.kuu.ne.jp" name="くぅ"/> <Anchor href="http://www.kee.ne.jp" name="けぇ"/> <Anchor href="http://www.koo.ne.jp" name="こぉ"/> </Data> <Data caption="その2"> <Anchor href="http://www.gaa.ne.jp" name="がぁ"/> <Anchor href="http://www.gii.ne.jp" name="ぎぃ"/> <Anchor href="http://www.guu.ne.jp" name="ぐぅ"/> <Anchor href="http://www.gee.ne.jp" name="げぇ"/> <Anchor href="http://www.goo.ne.jp" name="ごぉ"/> </Data> </Table> ★でのリンク先が{@href}になってしまう。 ’<input type="hidden">でなくとも{@**}指定は全て。 ☆ではきちんとXMLからデータを取ってきている。 です、宜しくお願いいたします。
関連するQ&A
- 一つ前の値
<ALL> <EX attr='3'><NAME>B</NAME></EX> <EX attr='2'><NAME>B</NAME></EX> <EX attr='1'><NAME>A</NAME></EX> </ALL> というXMLをつくり <xsl:for-each select="ALL/EX"> <xsl:sort select="./NAME"/> <xsl:sort select="./@attr"/> NAME:<xsl:value-of select="NAME"/> attr:<xsl:value-of select="@attr"/><BR/> </xsl:for-each> というXSLにかけると NAME:A attr:3 NAME:B attr:1 NAME:B attr:2 という結果が得られました。これを NAME:A attr:3 NAME:B attr:1 attr:2 のように、現在のNAMEが前のNAMEと同じ場合は表示しない ようにしたいのですが上手くいきません。 参考書には現在のNAMEとpreceding-sibling::EX/NAME の値を比較すると良いと書いてあったので preceding-sibling::EX/NAMEの値を取ってみたのですが NAME:A attr:3 preceding:B NAME:B attr:1 preceding:B NAME:B attr:2 preceding: と、なってしまいます。 良い方法はありませんでしょうか教えて下さい。
- ベストアンサー
- XML
- タグの内容を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に使用 することは出来ないのでしょうか? よろしくお願い致します。
- 締切済み
- XML
- XSLの中でHTMLタグが使えない
XMLとXSLTを使って、Formの中のListのオプションを、XML から取ってきたいと思ってます。イメージ的には、下記 の○○○の中に、<xsl:value-of select="."/>を入れる ことによって、<option value="<xsl:value-of select="."/>"><xsl:value-of select="."/></option> の様にしたいのですが、<や>を<や>に変えても、 うまく表示されません。また、Selectタグの属性の Multipleも=サインが無いとかで使えませし,Inputタグ も、終了タグが無いため使えませんでした。どのように 対処したら良いのでしょうか?よろしくお願いしま す。 <select name="list1" size="10" id="select5"> <xsl:apply-templates/> </select> <xsl:template match="//name"> <option value="○○○">○○○</option> </xsl:template>
- 締切済み
- XML
- formから値を取ってくる
検索機能つきのページを作ろうとしています。 htmlでformを使い閲覧者から指示された任意文字をxmlへ持ってくるにはどうしたらよいでしょうか? 今のところ ---html--- <FORM method="POST" action="kk.xml"> 名前:<input type="text" name="serch"> <INPUT type="submit" value="検索"></FORM> ---------- ---xml---- <xsl:variable name="serch"></xsl:variable> <xsl:value-of select="$serch" /> ---------- と行っているのですが値がxmlまで来ていないようです。
- 締切済み
- XML
- お願いします。
教えてください。 <ALL> <ITEM> <ITEMS>一</ITEMS> <ITEMS2>1</ITEMS2> </ITEM> <ITEM> <ITEMS>二</ITEMS> <ITEMS2>2</ITEMS2> </ITEM> </ALL> というようなXMLに <xsl:for-each select="ALL/ITEM"> <xsl:value-of select="ITEMS" /><BR /> </xsl:for-each> という処理をかけると、一<BR>二<BR>のように表示されますが、常に一番最初のITEMS(この場合、一)が欲しいときはどうすればいいのでしょうか。 <xsl:value-of select="ITEMS[1]" />や <xsl:value-of select="ITEMS[position()=1]" /> 等を試してみましたが、現在の値が抽出されてしまい失敗しました。参考ページでもいいので教えてください。お願いします。
- 締切済み
- XML
- xslのdocument関数で読込んだ2つのxmlをxsl:sortしたい
次のXSLで動作させています。 <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xml:space="default" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> <xsl:output method="text" /> <xsl:template match="/"> <xsl:for-each select="document('取り込むXMLファイル')//z:row"> <xsl:value-of select="@取り出したい属性の名前" /> </xsl:for-each> <xsl:for-each select="//z:row"> <xsl:value-of select="@取り出したい属性の名前" /> </xsl:for-each> </xsl:template> </xsl:stylesheet> ここまでは出来たのですが、xsl:sortでまとめてsortするにはどうすればいいのでしょうか?
- ベストアンサー
- XML
- for-eachが上手くいきません
xslを使ってごくごく基本的なことをしようとしているのですが、何故か上手くいかず煮詰まっています。 ここが違う!というツッコミを是非よろしくお願いします。 ごく単純なことですが、xmlで複数の<site></site>内にあるデータそれぞれ表示させるためxslファイル内でfor-eachを使っています。for-each抜きだと一つ目の<site></site>がちゃんと表示されるのですが、for-eachを付け加えた途端何も表示されなくなってしまいます。 参考書を見て何度確認、やり直しをしても上手くいかず困っています。 使っているコードは以下の通りです。 XMLファイル: <?xml version="1.0" encoding="Shift-JIS" ?> <?xml-stylesheet type="text/xsl" href="links.xsl" ?> <links> <site> <name>サイト1</name> <banner>some.jpg</banner> </site> <site> <name>サイト2</name> <banner>other.jpg</banner> </site> </links> XSLファイル: <?xml version="1.0" encoding="Shift-JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head><title><title></head> <body> <table border="1"> <xsl:for-each select="links/site"> <tr> <td> <img> <xsl:attribute name="src"> <xsl:value-of select="links/site/banner" /> </xsl:attribute> </img> <b><xsl:value-of select="links/site/name" /></b> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> 何かアドバイスがありましたらお聞かせ下さい。
- ベストアンサー
- XML
- hiddenのvalueの値を変えたい
おはようございます。 教えていただきたいことがあります。 HTMLのほうに <input type="hidden" name="btn" value=""> と書きます。 それでJavaSctiptのfunctionの中で document.forms[0].btn.value=funcitonの引数; とやっているのですが、hiddenのvalueの中に値が入っていないようです。 どうしてでしょうか? こういう使い方ってできないものなのでしょうか? 宜しくお願いします。
- ベストアンサー
- JavaScript
- select値をhiddenのvalueに渡したい
selectで選択されたvalue値を下のhiddenのvalue値(id)に渡して、 hiddenのvalue値(id)がselectで選択されたvalue値になるような フォームを作りたいのですが、作り方をお教え頂ければ幸いです。 <form name="form" method="get" action="index.cgi"> <select name="mode"> <option value="100023">和書</option> <option value="100241">洋書</option> <option value="100524">エレクトロニクス</option> </select> <input type="hidden" name="serch_janru" value="id" /> <input type="text" name="keyword" value="keyword" /><input type="submit" name="submit" value="商品を検索" /> </form> ソース等、具体的にお教え頂けると助かります。 どうぞ宜しくお願い致します。
- ベストアンサー
- HTML
- XSLでの指定方法
こういったXMLファイルがあり、 XSLにて変換をしたいと思っています。 <success> <table> <list> <row> <value>value1</value> <value>value2</value> <value>2</value> <value>10</value> <value>20</value> </row> ・ ・ ・ ・ </list> </table> </success> 上の例にある、 <value>20</value> valueの5番目が20以上のときだけ 色を変更して表示したいと思っています。 xslで <xsl:for-each select="value"> <xsl:if test="value[5]>= 20"> <xsl:attribute name="bgcolor">255,50,50</xsl:attribute> <xsl:value-of select="."/>, </xsl:if> としたのですが、 うまくいきません。 条件式が問題だとは思いますが、 どのような式にしたらよいのでしょうか?
- ベストアンサー
- XML
お礼
ご指摘のとおりだと思います。 ただ、<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> を使用すると表自体が出ませんで… <xsl:element name="a"> <xsl:attribute name="href"><xsl:value-of select="@href" /></xsl:attribute> こちら </xsl:element> を使用し、いずれ{@**}を使おうと思います。 とりあえずは、http://www.w3.orgの中をさまよってみます。 回答本当にありがとうございました。