-PR-
解決済み

XML,XSL,JavaScriptの連携

  • すぐに回答を!
  • 質問No.973217
  • 閲覧数308
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (2/2)

はじめまして。XML初心者です。
教えていただきたいことがあります。

今、XSLを解析しているのですが、おそらくこのようなことをやっているのだと考えます。↓

XSLでXMLのデータを読み込み、そのデータを元にリストボックスを作成して、JavaScriptでリストボックスで選択された要素の座標位置などを表形式で出力していると思うのですが、これは1画面中でやっています。
これを左右のフレームでわけて、左フレームにリストボックス、右フレームにリストボックスで選択された要素の座標位置などの表を出力したい、と思っています。
上記を実現させるためには、左フレームで選択したリストボックスがどの要素を指しているのか?を右のフレームに伝えなければならないと考えますが、どのようにしたらよいのかわかりませんし、なにから手をつけていけばよいかもわかりません。
このようなことを実現することは可能でしょうか?

わかりづらい説明で申し訳ありませんが、アドバイスをいただけたらと思います。
よろしくおねがいします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル10

ベストアンサー率 47% (66/140)

リストボックスの座標位置というのがよくわかりませんが、こんな感じではどうでしょうか?

・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

お礼率 100% (2/2)

返答ありがとうございます。
上記、大変参考になりました。引き続き作業を続けたいと思います。
ありがとうございました。
投稿日時 - 2004-08-25 08:51:21
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ