- - PR -
XMLとXSLとVBScriptで検索抽出
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-12-24 09:47
こんにちは。
市販のサンプル集を参考に、はりぼてで検索システムを作っています。開発に行き詰まっているのでお知恵を貸してください。 XML文書から複数のXSLとVBScriptを使って検索し、さらにその結果を一覧表示するというものです。 <!-- 以下がXML文書 customer.xml --> <?xml version="1.0" encoding="Shift-JIS"?> <All> <data> <kanNo>イ-1</kanNo> <key>イ-001</key> <bookname>つれづれ草画巻物</bookname> <yomi>ツレヅレグサエマキモノ</yomi> <kangou>辰</kangou> <eda></eda> <number>65</number> <d_volume>1巻</d_volume> <r_volume></r_volume> <type>写本 巻子</type> <era>江戸時代 天保6年(1835)写</era> <author>著:吉田兼好</author> </data> <data> <kanNo>イ-2</kanNo> <key>イ-002</key> <bookname>小藤太物語</bookname> <yomi>コトウタモノガタリ</yomi> <kangou>辰</kangou> <eda></eda> <number>56</number> <d_volume>1巻</d_volume> <r_volume></r_volume> <keitai>写本 巻子</keitai> <era>室町時代</era> <author></author> </data> </All> <-- XML文書ここまで --> <!-- 以下がXSL category01.xsl --> <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" version="4.01" encoding="Shift_JIS" indent="yes" /> <xsl:template match="/"> <html lang="ja"> <head> <title></title> </head> <body background="image/back02.jpg"> </body> </html> <div> <h1>第一門 神書及び宗教</h1> <table> <xsl:for-each select="All/data"> <xsl:if test="contains(era,'室町')"> <tr> <td> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="url" /> </xsl:attribute> <xsl:value-of select="bookname" /> </xsl:element> </td> <td><xsl:value-of select="kanNo" /></td> </tr> </xsl:if> </xsl:for-each> </table> </div> </xsl:template> </xsl:stylesheet> <-- XSLここまで --> <!-- 以下が抽出するaspコード --> <%@ LANGUAGE=VBScript %> <% set Domobj = server.CreateObject("microsoft.xmlDom") Domobj.load(server.mappath("CUSTOMER.XML")) set root = Domobj.documentElement count = root.selectNodes("//data").length %> <script type="text/vbscript"> <!-- option explicit dim xmldoc,stylesheet dim styleSource,htmlSource,no sub window_onload() set xmldoc=createObject("Microsoft.XMLDom") xmldoc.async=false xmldoc.load("customer.xml") end sub sub go(no) select case no case 1 styleSource="category01.xsl" case 2 styleSource="category02.xsl" ・・・以下xslが続く case else exit sub end select set stylesheet=createObject("Microsoft.XMLDom") stylesheet.async=false stylesheet.load(styleSource) htmlSource=xmldoc.transformNode(stylesheet) document.write(htmlSource) end sub <-- aspここまで --> 該当する時代の書名と番号を一旦XSLで取り出し(ここでHTML表示。ここまではできています)、さらにその後に書名をクリックしたら該当するXMLの情報すべてを表示するということがしたいのです。 ご面倒かとは思いますが、よろしくお願いいたします。 [ メッセージ編集済み 編集者: しょうご 編集日時 2002-12-24 09:50 ] [ メッセージ編集済み 編集者: しょうご 編集日時 2002-12-24 10:10 ] |
1