안녕하세요~ .xslt 관련 질문 드립니다. <br>index.html 에서 특정 버스번호(routes) 를 입력 하고 그 버스의 관련된 정보를 .xml 통해서 불러 오려고 합니다.<br>예를들어, 23 을 입력하면 23번 버스가 멈추는 정거장 번호와 이름등을 화면에 나타나게 하는건데요, <br>아무것도 입력 안하고, 버튼을 누르면 전체 정보가 뜨는데 특정 버스번호(routes)를 입력하면 인식이 안되고 그대로 전체정보가 뜹니다.<br>.xslt 파일에서 뭔가가 틀리게 한거 같은데 도무지 감이 안오네요 ㅠㅠ<br><br>1) index.html<br><br><html lang="en" xmlns="<a target="_blank" href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"><br><head><br> <style type="text/css"><br> h1 <br> {<br> font-family: Verdana;<br> font-size: 24pt;<br> }<br> h2 <br> {<br> font-family: Verdana;<br> font-size: 18pt;<br> }<br> input, button <br> {<br> font-family: Verdana;<br> font-size: 14pt;<br> }<br><br> </style><br><br> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><br> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no" /><br><br> <title>LTC Bus stops</title><br><br></head><br><br><body><br><br> <h2>Enter an LTC route number (or leave empty) and click 'Update'</h2><br> <input type="text" id="routesInput" /><br> <input type="submit" value="Update" onclick="RenderXSLT()" /><br> <br> <!-- This is the container that will contain the output from the xslt style sheet --><br> <div id="xsltOutputContainer"></div><br><br> <script type="text/javascript"><br><br> function loadXMLDoc(filename)<br> {<br> if (window.ActiveXObject)<br> {<br> xhttp = new ActiveXObject("Msxml2.XMLHTTP");<br> }<br> else<br> {<br> xhttp = new XMLHttpRequest();<br> }<br> xhttp.open("GET", filename, false);<br><br> try<br> {<br> xhttp.responseType = "msxml-document"<br> }<br> catch (err) { }<br> xhttp.send("");<br> return xhttp.responseXML;<br> }<br><br> function RenderXSLT()<br> {<br> xml = loadXMLDoc("ltcstops.xml");<br> xslt = loadXMLDoc("ltcstops.xslt");<br><br> var routesNum = document.getElementById("routesInput").value;<br> routesNum = routesNum.toString();<br><br> if (window.ActiveXObject || xhttp.responseType == "msxml-document")<br> {<br> // This code is for Internet Explorer<br> var template = new ActiveXObject("Msxml2.XslTemplate.6.0");<br> template.stylesheet = xslt;<br><br> var proc = template.createProcessor();<br> proc.input = xml;<br> proc.addParameter("routesNumber", routesNum);<br><br> proc.transform();<br> document.getElementById("xsltOutputContainer").innerHTML = proc.output;<br> }<br> else if (typeof XSLTProcessor !== 'undefined')<br> {<br> // This code is for other browsers<br> var xsltProcessor = new XSLTProcessor();<br> xsltProcessor.importStylesheet(xslt);<br><br> xsltProcessor.setParameter(null, "routesNumber", routesNum);<br><br> var resultDocument = xsltProcessor.transformToFragment(xml, document);<br> document.getElementById("xsltOutputContainer").innerHTML = "";<br> document.getElementById("xsltOutputContainer").appendChild(resultDocument);<br> }<br> }<br><br> </script><br><br> </body><br><br></html><br><br>2) .xslt<br><?xml version="1.0" encoding="utf-8"?><br><xsl:stylesheet version="1.0" xmlns:xsl="<a target="_blank" href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform</a>"<br> xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"><br> <br> <xsl:output method="html" indent="yes"/><br> <br> <!-- This is a parameter that is assigned a value by the JavaScript function renderXSLT() --><br> <xsl:param name="routesNumber" select="'15'" /><br> <br> <!-- This is a variable at global scope that is assigned a value based on the 'routes' parameter --><br> <br> <br> <xsl:template match="/"><br> <!-- There are no html and body elements generated here<br> because the output will be injected into an existing html<br> document called index.html which already has these tags. --> <br> <h1><br> <font face="Verdana"><br> All LTC Stops <br></br><br></br> <xsl:value-of select="count(//stop[@number])"/> stops found<br> </font> <br> </h1><br> <table style="width:720px" border="3"><br> <tr><br> <th><br> <font face="Verdana" size="4">Stop#</font><br> </th><br> <th><br> <font face="Verdana" size="4">Stop Name</font><br> </th><br> <th><br> <font face="Verdana" size="4">Latitude</font><br> </th><br> <th><br> <font face="Verdana" size="4">Longitude</font><br> </th><br> <th><br> <font face="Verdana" size="4">Routes</font><br> </th><br> </tr><br> <xsl:apply-templates select="//allstops" /> <br> </table><br> </xsl:template><br> <br> <xsl:template match="allstops"><br> <xsl:for-each select="./stop[contains(routes, routesNumber)]"><br> <xsl:sort select="@number" data-type="number" order="ascending" /><br> <xsl:element name="tr"><br> <xsl:element name="td"><br> <xsl:value-of select="@number" /><br> </xsl:element><br> <xsl:element name="td"><br> <xsl:value-of select="@name"/><br> </xsl:element><br> <xsl:element name="td"><br> <xsl:value-of select=".//latitude"/><br> </xsl:element><br> <xsl:element name="td"><br> <xsl:value-of select=".//longitude"/><br> </xsl:element><br> <xsl:element name="td"><br> <xsl:value-of select=".//routes"/><br> </xsl:element><br> </xsl:element><br> </xsl:for-each><br> </xsl:template><br><br> <br></xsl:stylesheet><br><br>3) .xml <br><br><?xml version="1.0" encoding="UTF-8"?><br><!-- Source:
www.london.ca/d.aspx?s=/Open_Data/default.htm<br> Date Accessed: March 19, 2013 --><br><allstops><br> <stop number="2504" name="Main & Bainard EB"><br> <location><br> <latitude>42.91033567</latitude><br> <longitude>-81.29671483</longitude><br> </location><br> <routes>28</routes><br> </stop><br> <stop number="20" name="Adelaide & Ada NB"><br> <location><br> <latitude>42.9742886</latitude><br> <longitude>-81.2252341</longitude><br> </location><br> <routes>16</routes><br> </stop><br> <stop number="22" name="Adelaide & Central Ave NB"><br> <location><br> <latitude>42.9945666</latitude><br> <longitude>-81.2343441</longitude><br> </location><br> <routes>16</routes><br> </stop><br><br>