• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XML,XSL,JavaScriptの連携)

XML,XSL,JavaScriptの連携についての質問

potedoraの回答

  • ベストアンサー
  • potedora
  • ベストアンサー率47% (66/140)
回答No.1

リストボックスの座標位置というのがよくわかりませんが、こんな感じではどうでしょうか? ・XMLファイル(list.xml) <?xml version="1.0" encoding="utf-8" ?> <data> <item>A</item> <item>B</item> <item>C</item> </data> ・XSLファイル(list.xsl) <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="Shift_JIS" indent="yes"/> <!-- 文書全体のテンプレートルール --> <xsl:template match="/"> <html> <script language="javascript" src="select.js"></script> <body onload="SelectList(0);"> <center> <form name="F1"> <xsl:apply-templates select="data" /> </form> </center> </body> </html> </xsl:template> <!-- <data>のテンプレートルール --> <xsl:template match="data"> <select name="S1" OnChange="SelectList(this.selectedIndex);"> <xsl:apply-templates select="item" /> </select> </xsl:template> <!-- <item>のテンプレートルール --> <xsl:template match="item"> <xsl:element name="option"> <xsl:attribute name="value"><xsl:value-of select="." /></xsl:attribute> <xsl:value-of select="." /> </xsl:element> </xsl:template> </xsl:stylesheet> ・フレーム定義htmlファイル(index.html) <frameset cols="50%,50%"> <frame src="left.html" name="left"> <frame src="right.html" name="right"> </frameset> ・フレーム左側htmlファイル(left.html) <script language="JavaScript"> <!-- var XmlFile = "list.xml" ; var XslFile = "list.xsl" ; var xmldoc ; // XML DOM オブジェクト // XMLファイル読込 xmldoc = new ActiveXObject("Microsoft.XMLDOM") ; xmldoc.async = false ; xmldoc.load(XmlFile) ; // XSLファイル読込 xsldoc = new ActiveXObject("Microsoft.XMLDOM") ; xsldoc.async = false ; xsldoc.load(XslFile) ; document.write(xmldoc.transformNode(xsldoc)); //--> </script> ・フレーム右側htmlファイル(right.html) <html> <body> <center> <form name="F2"> <input type="text" name="txtKekka"> </form> </center> </body> <html> ・Javascriptファイル(select.js) function SelectList(p) { parent.right.F2.txtKekka.value = p ; } index.htmlをダブルクリックして起動してみてください

kanan999
質問者

お礼

返答ありがとうございます。 上記、大変参考になりました。引き続き作業を続けたいと思います。 ありがとうございました。

関連するQ&A

  • XML/XSLでテンプレートの適用がうまくいかない

    同じツリーの深さで異なる要素名のノードがあるXMLだと期待通りにテンプレートが適用できない という問題に付き当たっています。 例えば    / +------+ poem  poem のような構成だとmatch=poem、value-of select="text"などで各poemの歌詞を表示させることが できます。 一方、以下の構成で同じ事をやろうとすると各poemの歌詞に加えてyearのnumのValueまで 列挙されてしまいます。poemの中身だけ出すにはどうすればよいでしょうか? 以下に例を書きます。     / +--------------+ list         year +------+      +----+ poem poem    Num Num 例えば以下のURLなどを参照してやっております。 http://www6.airnet.ne.jp/manyo/xml/xslt/step15.html XSLはこんな感じです。 <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="poem"> <tr> <td><xsl:value-of select="poet" /></td> <td><xsl:value-of select="yomi" /></td> </tr> <br /> </xsl:template> 手持ちのXMLを変換したく、その勉強のため上記のような構成のXMLを扱う方法を 知りたいと思っています。 よろしくお願いします。

    • 締切済み
    • XML
  • xsl:chooseでこんなことがしたい

    はじめまして。XML初心者です。 元データとなるXMLを読み込んでHTML変換する為のスタイルシートの作成を試みています。 xsl:chooseを使って以下のようなことがしたいのですが、 ご存知の方いましたら教えてください(xsl:chooseに拘りはありません) ・元データの基本構造 ------------------------------------------------------ <A> <B> <C1>てすと</C1> </B> </A> ------------------------------------------------------ ・やりたいこと  <C1>の要素内容がNULLなら"★"マークを表示したい。 作ったスタイルシート ------------------------------------------------------ ~ <xsl:choose> <xsl:when test="C1=''">★</xsl:when> <xsl:otherwise><xsl:value-of selct="C1"/></xsl:otherwise> </xsl:choose> ~ ------------------------------------------------------ という感じで試したらうまく”★”マーク表示ができたのですが、対象のXMLデータに例外があり、 <C1>以下の要素がない場合があったのです。 この例外でも同様の”★”表示させたいのですが、うまい方法ご存知の方いましたら教えてください。

    • ベストアンサー
    • XML
  • xmlの属性が重複しているのをxslで変換して表示するにはどうすればいいですか??

    xmlの属性が重複しているのをxslで変換して表示するにはどうすれば良いのでしょうか?? [ xml ] <content> <text>データ1</text> <text>データ2</text> </content> <content> <text>データ3</text> <text>データ4</text> </content> 上記のようなプログラムがあったとして、これを [html] <p>データ1</p> <p>データ2</p> <p>データ3</p> <p>データ4</p> という形で出力したいのですが、どのような xsl プログラムを書けばよいでしょうか?? xml ファイルの方は変更することができません。 ご教授よろしくお願いします。

    • ベストアンサー
    • XML
  • <DIV id=""></DIV>勘でいれたら・・・

    はじめまして。JavaScript初めてです。 わからないことがあるので、教えてください。 画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。 左フレーム:name = index 右フレーム:name = main こんな感じ(左フレーム)↓ <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function disp(obj){ 右フレームの表のHTML作成をしている parent.main.document.open(); parent.main.document.write (desc.innerHtml = 上で作成したHTML); parent.main.document.close(); } --> </SCRIPT> </HEAD> <BODY onload="disp(form)"> ※<DIV id="desc"></DIV> <FORM name="form"> <SELECT name="MListBox" onchange="disp(form)"> <xsl: apply-templates select="~"/> </SELECT> </FORM> *<DIV id="desc"></DIV> </BODY> </HTML>   ・   ・ <xsl文章>   ・ 初めは、※←のところがなく、右と左のフレーム両方に表が出力されてしまっていました。でも※←のところに<DIV id="desc"></DIV>を勘で入れたとたん、右フレームだけに表が出力されるようになりました。(期待の結果) 自分の予想では、*←のところのみで期待の結果が得られる予定で、(disp()でHTMLの出力を右フレームに指定しているから)何故※のところを追加したことで期待通りの動きをしたのかが謎です。 わかりづらい説明で申し訳ないですが、教えてくださる方がいらっしゃいましたら、どうぞお願いします。

  • XSLでノードの順番取得

    XSLでノードの順番の取得は可能でしょうか? 例えば、 <data> <title>xxxxxx</title> <item>xxxxxx</item> </data> のようなXMLで、<data>タグの一番最初の要素は、<title>タグというのは 調べられます? よろしくお願いします。

    • ベストアンサー
    • XML
  • xsl:if で行の属性の存在を調べる方法

    (XML詳しくないため、用語がおかしいかもしれません) 次のようなXMLデータがあります。 <ABC A="true" B="xxx" C="xxx" /> <ABC B="xxx" C="xxx" /> Aという属性が存在しているデータを取り除こうとしています。 1データは、A="true"が存在しているか、全く存在しないか、どちらかです。 そこで私は、次のようなXSL文を書いてみました。 <xsl:for-each select="xxxx"> <xsl:if test="A != 'true'"> <xsl:value-of select="xxxx" /> : : </xsl:if> </xsl:for-each> しかし、データは全く出力されません。 <xsl:if test="A = 'true'"> だと、Aがtrueのデータが出力されます。 A自体が存在しないデータを抽出するには、どのようにすればよいでしょうか? どうぞよろしくお願いします。

    • ベストアンサー
    • XML
  • Ajax.RequestでXMLデータをパース

    お世話になります。 Ajax.Requestをして、返ってくるデータがXMLなのですが このXMLをパースして表示したいのですが 何か方法はありませんでしょうか? もしかしたら簡単なことなのかもしれませんが ご存知の方がいらっしゃいましたら ご教授よろしくお願いいたします。 ajax.js //////////// function exec(fname,dispArea) { var httpObj = new Ajax.Request(fname, { method:'GET', onSuccess:function(req) { var text = req.responseText; $(dispArea).innerHTML = text; } } ); } ///////////test.html <script language="javascript" type="text/javascript" src="prototype.js"></script> <script language="javascript" type="text/javascript" src="scriptaculous.js"></script> <script language="javascript" type="text/javascript" src="ajax.js"></script> <span id="disp">exec('hoge.xml', 'disp');</script></span> //////////// hoge.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="hoge.xsl" ?> <top> <list> <row>テスト1</row> </list> <list> <row>テスト2</row> </list> <list> <row>テスト3</row> </list> </top> //////////// hoge.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="top"> <html><title>XMLパース</title> <body> <xsl:for-each select="list"> <xsl:value-of select="row" /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>

  • 複数のxmlファイルの合体

    複数のxmlファイルの合体 XML、JavaScriptのど素人です。諸先輩方のアドバイスを乞いたくよろしくお願いいたします。 XML本のサンプルプログラムで、XML/XSL/JavaScript(html内に記述されている)を用いた 検索プログラムを以下の理由で改良したいと考えています。 <books> <book> <data1>データ</data1> <data2>データ</data2> <data3>データ</data3> </book> </books> の構造を持つxmlファイルがあったとして データの更新が頻繁に行われるのは<data3>要素だけなので、 <books> <book> <data1>データ</data1> <data2>データ</data2> </book> </books> -----xml1 <books> <book> <data3>データ</data3> </book> </books> -----xml2 のように2ファイルに分離し、 JavaScriptの検索プログラムで、<data1>~<data3>要素から条件にあったデータを抽出したいのですが どうすればいいのでしょうか?よろしくお願いします。

    • 締切済み
    • XML
  • こんなことが実現可能か

    私はXMLについてはほとんど無知なんですが、 以下のことが実現可能なんでしょうか? XMLには商品の名前とその商品のキーワードの要素が書かれいています。 それをXSLを使って、商品のリンク(amazonなどの外部のページ) とキーワードより求めた類似商品のリスト表示ようのリンク を備えたHTMLを生成したいと思っています。 C言語とHTMLしかしたことがなく、 XMLはその二つを兼ね備えたものだと 誤認しているかもしれません。 どうやったら上記のことを実現できるか 助言してください。 もし、かなり困難なことであれば それも書いてください。

    • 締切済み
    • XML
  • XML → HTML の確認方法

    閲覧ありがとうございます。 まったくの初心者で、かなり初歩的なことだと思うのですが質問させていただきます。 XML文書についてなんですが、Web上でHTMLとして確認したいのですが、それができなくて困っています。泣 XMLの知識がまったくなかったので、色々調べてみたのですが、結果 XML + XSLスタイルシート → HTMLに変換されてWeb上でみれる・・・ということが分かりました。 また、その変換に processorが必要・・・ということも分かりました。 パソコン内にXSLスタイルシートを発見し、HTMLに変換するのに、Easy XSLT processortというのもダウンロードしてみたのですが、使いたかがよくわからず、使えずにいます・・・泣。 また、XML文書につきましては、あるツールを使って簡単に作成しているのでXML文書についての知識は本当にありません。XSLスタイルシートももともと入っていたものなのでよくわかりません。 XML文書もXSLスタイルシートもあるので、このEasy XSLT processorがうまく使えればWeb上でうまく表示されると思うのですが、どのようにすればいいのでしょうか(><)? XMLの部分にXML文書のファイルを、XSLの部分にXSLスタイルシートのファイルを選択しているのですが、毎回「オートフォーメーションサーバーはオブジェクトを作成できません」「undifindはNullまたはオブジェクトではありません」と言われて、終了してしまいます。 本当に初歩的なことでごめんなさい。 長文を読んで下り、ありがとうございます。ご回答お待ちしております。 (補足) 今までWindowsXPを使用しておりまして、作成したXML文書をクリックするだけでWeb上で文書が表示され、確認することができてたのですが、最近Windows7にかわってから、作成したXML文書をクリックしてもWeb上でうまく表示されなくなってしまいました(><)。 見られなくなった、というよりは、今まで表のように見れていたものが、ずらずら~とした単なる文字の羅列になってしまいました。泣 もしprocessorうんぬんの問題ではない場合も、ご指摘いただけると幸いです。

    • 締切済み
    • XML