- - PR -
2つのXML文書を1つにしたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2001-09-17 18:26
(ファイルに手を加えず文章を挿入する)
の方でサンプルファイルを作成してテストしたのですが、私のIE6.0 以外、データを全く表示してくれません。 ちなみに、他の人たちはIE5.5です。 この方法はブラウザに依存しているのでしょうか? 念のために、xml、xslをコピーします。 wbt01.xml <?xml version="1.0" encoding="Shift-JIS"?> <?xml-stylesheet type="text/xsl" href="wbt01.xsl"?> <WBT> <section> <id>1</id> <id>2</id> <id>3</id> <id>4</id> <id>5</id> <id>6</id> <id>7</id> <id>8</id> <id>9</id> </section> <text> <test>文章単元1用演習問題</test> <detail>Go</detail> <etsuran>0</etsuran> <JisshiNinzu>120/150</JisshiNinzu> <time>30</time> <jyoukyo>済</jyoukyo> <gouhi>否</gouhi> <average>50</average> <haiten>70/100</haiten> </text> <text> <test>文章単元2用演習問題</test> <detail>-</detail> <etsuran>10</etsuran> <JisshiNinzu>100/100</JisshiNinzu> <time>60</time> <jyoukyo>未</jyoukyo> <gouhi>合</gouhi> <average>70</average> <haiten>80/100</haiten> </text> </WBT> list.xml <?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="wbt01.xsl"?> <objectlist> <object id="1">テスト</object> <object id="2">詳細</object> <object id="3">閲覧回数</object> <object id="4">実施人数対象人数</object> <object id="5">所要時間</object> <object id="6">現在の状況</object> <object id="7">合否</object> <object id="8">平均点</object> <object id="9">点数配点</object> </objectlist> wbt01.xsl <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!--<?xml version="1.0" encoding="Shift_JIS" ?>--> <!--<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">--> <xsl:template match="/"> <html lang="ja"> <head> <title>study</title> <style type="text/css"> table{margin-top:10;width:800;} th{background:KHAKI;} td{background:BEIGE;} </style> <!--<script type="text/JavaScript">--> <script language="JavaScript"> <xsl:comment> <![CDATA[ var xmldoc=new ActiveXObject("Microsoft.XMLDom"); xmldoc.async=false; xmldoc.load("wbt01.xml"); var xmldoc=new ActiveXObject("Microsoft.XMLDom"); xmldoc.async=false; xmldoc.load("list.xml"); var stylesheet=new ActiveXObject("Microsoft.XMLDom"); stylesheet.async=false; stylesheet.load("wbt01.xsl"); var sortfield=stylesheet.selectSingleNode("//@order-by"); ]]> </xsl:comment> </script> <script language="JavaScript"> <xsl:comment> <![CDATA[ function mySort(field) { sortfield.value=field; myTable.innerHTML=xmldoc.documentElement.transformNode(stylesheet); } ]]> </xsl:comment> </script> </head> <body> <div id="myTable"> <xsl:apply-templates select="WBT" /> </div> </body> </html> </xsl:template> <xsl:template match="WBT"> <table border="0" align="center"> <tr align="center"> <xsl:for-each select="section/id"> <td><xsl:value-of select="document('LIST.XML')//object[@id = current()]"/></td> </xsl:for-each> </tr> <xsl:for-each select="text"> <tr align="center"> <td><xsl:value-of select="test" /></td> <td><xsl:value-of select="detail" /></td> <td><xsl:value-of select="etsuran" /></td> <td><xsl:value-of select="JisshiNinzu" /></td> <td><xsl:value-of select="time" /></td> <td><xsl:value-of select="jyoukyo" /></td> <td><xsl:value-of select="gouhi" /></td> <td><xsl:value-of select="average" /></td> <td><xsl:value-of select="haiten" /></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> |
|
投稿日時: 2001-09-18 01:48
ohiさん、こんにちは。@IT新野です。
Ask XML Expertの記事を参考にされたのでしょうか。 まずはできあがったXMLなりHTMLなりを保存して、それがブラウザで 表示されるかどうかを確認されたらいかがでしょうか。 表示できなければ、どこに問題があるかを切り分けていき、 問題のあるところを発生させるようなXSLTの部分を見つけて いけばいいと思います。 にいの |
|
投稿日時: 2001-09-18 09:58
新野さん、返答ありがとうございました。
MicrosoftのXML Parserのバージョンが古いために、 動かなかったことが判明しました。 MSXML 3.0をインストールするとそれぞれの端末で 動くことが確認できました。 バージョンチェックのロジックを持っている方が よさそうですね。もしくは、もっとXMLを安定して 実現できるXML Parserがあるのでしょうか? ともあれ、どうもありがとうございました。 [ メッセージ編集済み 編集者: ohi 編集日時 2001-09-18 13:03 ] |
|
投稿日時: 2001-09-18 12:17
ohiさん、解決されたようでよかったです。たしかにXMLパーサによって挙動が違い
ますからね。XMLパーサについては、いろいろでていますが、MSXML3はそれほど悪い 評判はききません。MSの独自拡張もありますが、いちおう標準規格にはほぼ対応し ているようです。いつか記事の方でもXMLパーサの比較などをやりたいなあと思って はいるのですが… たしか先月号の月刊Javaワールドに、XMLパーサの比較記事が掲載されていたと思う ので、よろしければチェックしてみてください。 にいの |
1