• ベストアンサー

formタグと、imgObj.src[=strURL]

変なタイトルで、申し訳ありません。 最近、XMLを習得しようと思い勉強しているところです。 質問なのですが、 ~~~~~~省略~~~~~~ <body> <form> タイトル: <select name="strItem" onchange="f_disp()"> <xsl:apply-templates select="product" /> </select> <br> <img src="" id="pic" /> </form> </body> ~~~~~~省略~~~~~~ というXSLファイルがあります、 (ちなみに、コンボボックスで選択されたXMLファイルを表示しようとしています。) javascriptで、idであるpicのsrcを取得して、画像を表示しようと 考えています(pic.src = ○○○.item(0).textみたいな感じで、取得しています)。 上記のソースでは、画像が表示されないのですが、 </form>タグを</select>の下に移動すると、きちんと画像が 表示されます。 なぜ、このようなことが起こるのかわかりません。 ご指導お願いします。 以上です

  • XML
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.2

HTML TransitionalやXHTML 1.0ではform要素の内容としてブロック要素とインライン要素両方置けますが、HTML StrictやXHTML 1.1ではインライン要素を置けません。(img要素はインライン要素) Strictを指定してたりしませんか? 一般的な話として、トラブルを避けるため、なるべくStrictでも通用するように記述することをお奨めします。div要素の中にimg要素を置くだけですので。 見当違いな回答だったら、すみません。

参考URL:
http://validator.w3.org/

その他の回答 (1)

  • holly2001
  • ベストアンサー率75% (25/33)
回答No.1

あまり詳しくはありませんが、とりあえず確認です。 <br>は<br />になっていますか? なっているとして、(HTMLと同様に改行として使っておられると思いますが)表示時にきちんと機能していますか?

teraum
質問者

補足

お世話になります。 表示部分はしっかりと出てきます。 ただ、 ------------------------------------------------------- <body>  <form>   タイトル:   <select name="strItem" onchange="f_disp()">    <xsl:apply-templates select="product" />   </select>  </form>  <img src="photo/3.jpg" id="pic" width="200" /> </body> ------------------------------------------------------- このソースと、 ------------------------------------------------------- <body>  <form>   タイトル:   <select name="strItem" onchange="f_disp()">    <xsl:apply-templates select="product" />   </select>  <img src="photo/3.jpg" id="pic" width="200" />  </form> </body> ------------------------------------------------------- このそーすでは、動きが違います。 HTMLを普通に使用するような感覚で、<form>タグ を使っているのですが、どうやら、そういうわけには 行かないみたいで、なぜ、下のソースでは、 動かないかを知りたいのですが・・・・

関連するQ&A

  • 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
  • <form>タグ内の再読み込みに関して

    以下のようなhtmlファイルがあったとします。 ※<body>タグ内以外は省略 ------------------------------------------------- <body onload="bodyload()"> <form> <input id="id_button1" type="image" value="button" name="n_button1" onclick="click();"> </form> </body> ------------------------------------------------- 呼び出されるjavascriptを以下の通りとします ------------------------------------------------- function bodyload() { document.getElementById('id_button1').src = '/images/base.png' } function click() { document.getElementById('id_button1').src = '/images/1.png' } ------------------------------------------------- id_button1のクリックによって、click()が動作し画像が「/images/1.png」に変更されるのですが、 一瞬で「/images/base.png」に戻ってしまいます。色々試したところhtmlファイルの<form>タグを 消してやれば「/images/base.png」に戻ることなく画像を変更することが可能であることに気づき ました。 どうやらformタグがあると再読み込みが行われているようです。 formタグがあると何故このような動きをするのでしょうか? formタグ内でも再読み込みの有無を 制御することはできないのでしょうか?お分かりになる方がいらっしゃればご教授いただければ と思います。 javascriptというよりhtmlの内容かもしれませんがよろしくお願いいたします。 なお、実行環境はWindows8Pro、VisualStudio2012、Windowsストアアプリ開発プロジェクト内のデバッグです。

  • iframe srcに代わるものを教えて!!

    iframe srcで 画像つきの表をブログに載せようとすると 『許可されていないタグ』とでます。 しかし、全文が表示されているサイトにいくと そのまま載せれると書かれています。 どうすれば 載せれるのか教えてください@ <全文>↓ <iframe src="http://xml.bidders.co.jp/bep/xml?aff_id=0mxJE_SONETHT5DRy3vWn0q--&link_id=3652148&keyword=&charset=UTF-8&categ_id=&at=NO&user=2404106&sort=end,A&ipp=15&boderColor=339900&bgColor=ffffff&itemTitleColor=666666&itemTextColor=ff6600&tf=xml_lite4&xsl=http%3A%2F%2Fxml.bidders.co.jp%2Fxsl%2Fkeyword%2F468_600.xsl" width="468" height="600" Scrolling="no" FRAMEBORDER="0" MARGINWIDTH="0" MARGINHEIGHT="1"><a href="http://www.bidders.co.jp/affiliate/keyword.html"></a></iframe>

  • XSL変換したが画像が表示できません

    下記のXMLの画像データを表示するためXSL変換したが画像が表示できません ちなみに同drに設置しています。  PHOT.XML <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="style.xsl"?> <photos>  <photo url="http://www.kahokanko.com/demo/10.jpg"/>  <photo url="http://www.kahokanko.com/demo/19.jpg"/>  <photo url="http://www.kahokanko.com/demo/31.jpg"/> </photos> STYLE.XSL <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  <xsl:template match="/">  <html>   <head>    <title>サンプル</title>    <link rel="styleSheet" type="text/css" href="./xx.css" />   </head>   <body>    <h1>画像を表示</h1>    <div>     <xsl:apply-templates />    </div>   </body>   </html>  </xsl:template>  <xsl:template match="photo">   <p class="album">    <img>     <xsl:attribute name="src">      <xsl:value-of select="@url" />     </xsl:attribute>    </img>   </p>  </xsl:template> </xsl:stylesheet>

  • <img src"○.jpg">の○をランダムに!

    1.jpgから30.jpgの30枚の画像はimagesという名のフォルダにあり、 それらの画像をJavaScriptで画像を1枚目からランダムにフェードインするものを作りたく、 http://asamuzak.jp/html/302を参考にして、 2枚目からランダムにフェードインすることはできました。 しかし、1枚目が必ず同じ画像が表示されてしまいます。 body内の<img src"1.jpg" id=""> の部分が表示される1枚目のようです。 1.jpgを2.jpgにすると2.jpgが最初に表示されます。 1枚目からランダムにフェードインするものを作るには、 この<img src"1.jpg" id="">を<img src"ランダムな整数.jpg" id=""> にすればいいのでは? と思いました。 自分が考えたコードは、 下記コードの場合の動作は、 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><!-- InstanceBegin template="/Templates/index.dwt" codeOutsideHTMLIsLocked="false" --> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title></title> <script language="JavaScript"> <!-- var n = Math.floor((Math.random() * 29))+1; //--> </script> </head> <body> <img src="../images/1.jpg" /> </body> </html> 1.jpgが毎回必ず表示されます。 ランダムな整数を取得できるJavaScriptを作り、 var n = Math.floor((Math.random() * 29))+1; その整数を上記コードの <body> <img src="../images/1.jpg" /> </body> の部分を <body> <img src="../images/n.jpg" /> </body> とvar nを入れてやれば 1~30のランダムな整数が入って ページを更新するたびに画像が変わると考えました。 <img src="../images/n.jpg" />の書き方を直せばいいと思うのですが、 どのようにしたらいいのでしょうか? よろしくお願いします。

  • <br>などのタグをタグとして認識させたい。

    以下のようなXSLで、XMLのProductDescriptionの内容に<br>などのタグが入っているときに、ブラウザで表示し たときタグをタグとして認識させたいのですが、どうすればいいのでしょうか? <xsl:template match="ProductDescription"> <hr /> <b>レビュー<i> XXXXXX.co.jp</i></b> <p> <xsl:apply-templates select="text()" /> </p> </xsl:template> このままXSLを実行して表示すると、htmlのタグをタグとしてではなく、文字として認識してしまうのです。 どうかご回答よろしくお願いします。

    • 締切済み
    • XML
  • xsl、xpath式の書き方について

    xslで質問させてください。 以下のようなxmlとxslを作っているのですが、xslの最後のほうで、 sample.xmlの/empList/emp/type/@idの値に応じて、typeList.xmlの/typeList/type/titleの値を取得したくて、 xsl:value-of select="document('typeList.xml')/typeList/type[@id = type/@id]/title/text()" /> と書いていますが、うまくいきません。どうすればいいでしょうか? -----[sample.xml] <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="a.xsl" type="text/xsl"?> <empList> <emp> <type id="1" /> <name>鈴木</name> <desc>あああ</desc> </emp> <emp> <type id="2" /> <name>田中</name> <desc>いいい</desc> </emp> </empList> -----[typeList.xml] <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="a.xsl" type="text/xsl"?> <typeList> <type id="1"> <title>タイプ1</title> </type> <type id="2"> <title>タイプ2</title> </type> </typeList> -----[a.xsl] <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" media-type="text/html" /> <xsl:template match="/"> <html> <head><title>サンプル</title></head> <body> <xsl:apply-templates select="empList/emp" /> </body> </html> </xsl:template> <xsl:template match="emp"> <h2><xsl:value-of select="name/text()" /></h2> <p>タイプ:<xsl:value-of select="document('typeList.xml')/typeList/type[@id = type/@id]/title/text()" /></p> <p>メモ:<xsl:value-of select="desc/text()" /></p> </xsl:template> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • テキストノードの文字列に一致した要素の取得(xPath

    xml,xslを勉強しているのですが、xPathの指定が上手く定義できない状態です。ご教授の程お願い致します。 下記がxml,xslです <!-- アーティスト名とタイトルを明記したxml --> -- music.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="music.xsl"?> <music> <artist> Ciel <title>wake</title> </artist> <artist> Flew <title>BANG</title> </artist> <artist> cobu                 // (1) <title>calling</title> </artist> <artist> cobukure <title>dammy</title> </artist> </music> <!-- 条件に一致したアーティスト名、タイトルを表示するxsl --> -- music.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head><title></title></head> <body> <xsl:for-each select = "descendant::artist[contains(text(),'cobu')]"> // (2) <xsl:value-of select ="text()" />: <xsl:value-of select ="title" /><br/> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> //上記の処理結果 cobu :calling cobukure :dammy //希望する処理結果 cobu :calling ・質問内容 XMLのartistのテキストノード=cobuをxsl:for-eachでselectして、 titleのcallingを表示したい 本、サイトなどで調べて、 descendant::artist[contains(text(),'cobu')]のxPathまでは、 導けたのですが、この場合は、cobuを含むので、 artistのテキストノード=cobukureもselectされdummyが表示されてしまいます。 処理結果、 cobu :callingのみselectできるxPathの定義をご教授の程お願い致します

    • ベストアンサー
    • XML
  • うまく表示されない

    XMLを最近覚えたのですが、表示がうまく出来ないので間違ってる箇所を教えて頂けないでしょうか? よろしければどうしたら表示されるのかも教えて頂けると助かります。 元のソース <?xml version="1.0" encoding="SHIFT_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>***</title> <link rel="stylesheet" type="text/css" href="**.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <body> <br /> <h2>***</h2> <h4>***</h4> <table><tr><td width="600"> <div><br /><font size="4" color="blue">***</font> <br />*** </div></td></tr></table> <br /> <a href="../***.html"><img src="back.png" border="0" alt="" /></a> <br /> <br /> </body> </html> ↓変更後 XML <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="taimu1.xsl"?> <taimu> <tai>***</tai> <sab>***</sab> <bunn> <br /><font size="4" color="blue">***</font> <br />*** <br /> </bunn> <gazou> <a href="***.html"><img src="***.png" border="0" alt="" /></a> </gazou> </taimu> ↓変更後 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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>***</title> <link rel="stylesheet" type="text/css" href="***.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <body> <xsl:apply-templates select="tai" /> <xsl:apply-templates select="sabu" /> <xsl:apply-templates select="bun" /> <xsl:apply-templates select="gazou" /> </body> </html> </xsl:template> <xsl:template match="tai"> <h2>***</h2> </xsl:template> <xsl:template match="sabu"> <h4>***</h4> </xsl:template> <xsl:template match="bun"> <table><tr><td width="600"><div> </div></td></tr></table> </xsl:template> <xsl:template match="gazou"> <a href="***.html"><img src="***.png" border="0" alt="" /></a> </xsl:template> </xsl:stylesheet> 大体このように書きました

    • 締切済み
    • XML
  • XSL内でJavaScriptを記述し、JavaScript内でXMLデータを取得するには・・・

    大変困っていますのでよろしくお願いします。 XSLのファイル内でJavaScriptを記述し、JavaScriptでxmlの要素を取得操作したいのですが、とり方がわかりません。 ご教授のほどをよろしくお願いします。 ================================================================== sample.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>XML: 基本サンプル</title> </head> <body> <p align="center">サンプル</p> <xsl:apply-templates select="information/value/applicationinfo" /> </body> </html> </xsl:template> <xsl:template match="value/applicationinfo"> <Script Language = "JavaScript"> <xsl:comment> <![CDATA[ document.write("<xsl:value-of select=\"componentname\" />"); ]]> </xsl:comment> </Script> <table border="1"> <tr> <td><xsl:value-of select="componentname" /></td> </tr> </table> </xsl:template> </xsl:stylesheet> ================================================================== 下のテーブルでは要素を表示することはできます。 このやり方では駄目なのでしょうか?

    • ベストアンサー
    • XML

専門家に質問してみよう