让javascript显示XLST中定义的数据有困难

让javascript显示XLST中定义的数据有困难,javascript,xml,xslt,xslt-1.0,Javascript,Xml,Xslt,Xslt 1.0,我有几个XSL文件,它们定义了如何计算一些统计数据并将其显示在一两个表中,我只能在IE中显示这些表,但它没有显示我拥有的样本数据,并且我无法使用XSL中的输入按钮添加数据,该按钮来自下面XSL中调用的函数addPlay() 下面是显示html <html> <head> <title></title> <script type="text/javascript">

我有几个XSL文件,它们定义了如何计算一些统计数据并将其显示在一两个表中,我只能在IE中显示这些表,但它没有显示我拥有的样本数据,并且我无法使用XSL中的输入按钮添加数据,该按钮来自下面XSL中调用的函数addPlay()

下面是显示html

    <html>
    <head>
        <title></title>

        <script type="text/javascript">

            var DOMPID =        ["Msxml2.DOMDocument.5.0",
                "Msxml2.DOMDocument.4.0",
                "Msxml2.DOMDocument.3.0",
                "MSXML2.DOMDocument",
                "Microsoft.XMLDOM"];

            var FreeThreadPID = ["Msxml2.FreeThreadedDOMDocument.5.0",
                "Msxml2.FreeThreadedDOMDocument.4.0",
                "Msxml2.FreeThreadedDOMDocument.3.0"];

            var TemplatePID =   ["Msxml2.XSLTemplate.5.0",
                "Msxml2.XSLTemplate.4.0",
                "Msxml2.XSLTemplate.3.0"];

            function getPID(pArray) {
                var PIDStr = "";
                var PIDFound = false;
                for (i=0; i<pArray.length && !PIDFound; i++) {
                    try {
                        var objectXML=new ActiveXObject(pArray[i]);
                        PIDStr=pArray[i];
                        PIDFound=true;
                    } catch (objException) {
                    }
                }
                return PIDStr;
            }

            function loadDoc(document, file) {
                document.async=false;
                document.load(file);
            }


            var IE = window.ActiveXObject ? true:false;
            var MOZ = document.implementation.createDocument ? true: false;

            var xmlFile="game.xml";
            var xsltFile1="title.xsl";
            var xsltFile2="scoring.xsl";
            var xsltFile3="boxscore.xsl";
            var xsltFile4="gamelog.xsl";

            var xml;
            var xslt1; 
            var xslt2;
            var xslt3;
            var xslt4;

            function createX(xFile, PID)
            {
                if (IE) {
                    xDoc=new ActiveXObject(getPID(PID));
                }
                else if (MOZ) {
                    xDoc=document.implementation.createDocument("", "", null);
                }
                else xDoc=document.implementation.createDocument("", "", null);

                loadDoc(xDoc, xFile);
                return xDoc;
            }

            function Trans(xDoc, xsltDoc) {

                if (IE) {
                    var resultStr=xDoc.transformNode(xsltDoc);
                }
                else if (MOZ) {
                    xProcessor = new XSLTProcessor();   <!-- 1 -->
                    xProcessor.importStylesheet(xsltDoc); <!-- 2 -->
                    resultDoc = xProcessor.transformToDocument(xDoc);   <!-- 3 -->
                    var serialObj = new XMLSerializer();
                    var resultStr = serialObj.serializeToString(resultObj); <!-- 4 -->

                }
                alert("Page is loaded");  // not getting this far
                return resultStr;
            }

            function init()
            {
                var titleElem=document.getElementById("title");
                var scoringElem=document.getElementById("scoring");
                var boxscoreElem=document.getElementById("boxscore");
                var gamelogElem=document.getElementById("gamelog");

                xml=createX(xmlFile, DOMPID);
                xslt1=createX(xsltFile1,DOMPID);
                xslt2=createX(xsltFile2,DOMPID);
                xslt3=createX(xsltFile3,DOMPID);
                xslt4=createX(xsltFile4,DOMPID);

                titleElem.innerHTML=Trans(xml,xslt1);
                scoringElem.innerHTML=Trans(xml,xslt2);
                boxscoreElem.innerHTML=Trans(xml,xslt3);
                gamelogElem.innerHTML=Trans(xml,xslt4);
            }

            function addPlay()
            {
                var boxscoreElem=document.getElementById("boxscore");
                var gamelogElem=document.getElementById("gamelog");
                var newplay=xml.createElement("play");
                var minindex=document.scoring.min.selectedIndex;
                var secindex=document.scoring.sec.selectedIndex;
                var actindex=document.scoring.action.selectedIndex;
                var playerindex=document.scoring.player.selectedIndex;
                var minute=document.scoring.min.options[i].text;
                var second=document.scoring.sec.options[i].text;
                var time="minute:second";
                var player=document.scoring.player.options[i].text;
                var team=document.scoring.player.options[i].value;
                var action=document.scoring.action.options[i].text;
                newplay.setAttribute("time", time);
                newplay.setAttribute("player", player);
                newplay.setAttribute("team", team);
                newplay.setAttribute("action", action);
                xml.documentElement.appendChild(newplay);
                boxscoreElem.innerHTML = Trans(xml,xslt3);
                gamelogElem.innerHTML = Trans(xml,xslt4);

            }
        </script>
    </head>



    <body onload="init()">
    <!--"document.onload = init;"  onLoad="init();">  -->

    <form name="sForm">
        <div id="title"></div>
        <div id="boxscore"></div>
        <div id="scoring"></div>
        <div id="gamelog"></div>
    </form>
    </body>

    </html>

var DOMPID=[“Msxml2.DOMDocument.5.0”,
“Msxml2.DOMDocument.4.0”,
“Msxml2.DOMDocument.3.0”,
“MSXML2.DOMDocument”,
“Microsoft.XMLDOM”];
var FreeThreadPID=[“Msxml2.freethreadedomdocument.5.0”,
“Msxml2.FreeThreadedDOMDocument.4.0”,
“Msxml2.FreeThreadedDOMDocument.3.0”];
var TemplatePID=[“Msxml2.XSLTemplate.5.0”,
“Msxml2.XSLTemplate.4.0”,
“Msxml2.XSLTemplate.3.0”];
函数getPID(pArray){
var PIDStr=“”;
var-PIDFound=false;
对于(i=0;i
xProcessor.importStylesheet(xsltDoc);
resultDoc=xProcessor.transformToDocument(xDoc);
var serialObj=新的XMLSerializer();
var resultStr=serialObj.serializeToString(resultObj);
}
警报(“页面已加载”);//还没到这一步
返回结果TR;
}
函数init()
{
var titleElem=document.getElementById(“标题”);
var scoringElem=document.getElementById(“评分”);
var-boxscoreElem=document.getElementById(“boxscore”);
var gamelogElem=document.getElementById(“gamelog”);
xml=createX(xmlFile,DOMPID);
xslt1=createX(xsltFile1,DOMPID);
xslt2=createX(xsltFile2,DOMPID);
xslt3=createX(xsltFile3,DOMPID);
xslt4=createX(xsltFile4,DOMPID);
titleElem.innerHTML=Trans(xml,xslt1);
scoringElem.innerHTML=Trans(xml,xslt2);
boxscorelem.innerHTML=Trans(xml,xslt3);
gamelogElem.innerHTML=Trans(xml,xslt4);
}
函数addPlay()
{
var-boxscoreElem=document.getElementById(“boxscore”);
var gamelogElem=document.getElementById(“gamelog”);
var newplay=xml.createElement(“play”);
var minindex=document.scoring.min.selectedIndex;
var secindex=document.scoring.sec.selectedIndex;
var actindex=document.scoring.action.selectedIndex;
var playerindex=document.scoring.player.selectedIndex;
var minute=document.scoring.min.options[i].text;
var second=document.scoring.sec.options[i].文本;
var time=“分钟:秒”;
var player=document.scoring.player.options[i].text;
var team=document.scoring.player.options[i].值;
var action=document.scoring.action.options[i].text;
setAttribute(“时间”,时间);
setAttribute(“player”,player);
newplay.setAttribute(“团队”,团队);
setAttribute(“动作”,动作);
xml.documentElement.appendChild(newplay);
boxscorelem.innerHTML=Trans(xml,xslt3);
gamelogElem.innerHTML=Trans(xml,xslt4);
}
()  

它是否在线,以便我们可以访问样本?浏览器的错误控制台显示什么,它是否显示任何错误?目前,这都是本地内容,我从控制台显示(F12)中没有收到任何错误但这是在IE中,我无法在任何其他浏览器中显示太多内容。我试图将其发布到网站,但我认为主要问题是,在获取数据和发布或使用addPlay()的某些对象调用中可能存在断开连接不幸的是,到目前为止,我所做的任何调试都没有显示出这一点
    <xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="4.0" />

    <xsl:template match="/">
       <xsl:apply-templates select="game" />
    </xsl:template>

    <xsl:template match="game">
       <table class="scoring">
       <form name="scoring">
       <tr><th>Player</th>
           <td><select name="player" class="scoring">
                  <xsl:apply-templates select="team" />
               </select>
           </td>
       </tr>
       <tr><th>Action</th>
           <td><select name="action" class="scoring">
               <optgroup label="Shots Made">
               <option>makes 2-pt shot</option>
               <option>makes 3-pt shot</option>
               </optgroup>
               <optgroup label="Shots Missed">
               <option>misses 2-pt shot</option>
               <option>misses 3-pt shot</option>
               </optgroup>
               <optgroup label="Free Throws">
               <option>makes free throw</option>
               <option>misses free throw</option>
               </optgroup>
               <optgroup label="Rebounds">
               <option>grabs offensive rebound</option>
               <option>grabs defensive rebound</option>
               </optgroup>
               <optgroup label="Other">
               <option>assists</option>
               <option>steals ball</option>
               <option>commits turn-over</option>
               <option>commits personal foul</option>
               </optgroup>
               </select>
          </td>
       </tr>
       <tr><th>Time</th>
           <td><select name="min">
               <option>19</option><option>18</option><option>17</option><option>16</option>
               <option>15</option><option>14</option><option>13</option><option>12</option><option>11</option>
               <option>10</option><option>09</option><option>08</option><option>07</option><option>06</option>
               <option>05</option><option>04</option><option>03</option><option>02</option><option>01</option>
               <option>20</option><option>19</option><option>18</option><option>17</option><option>16</option>
               <option>00</option>
               </select>
               :
               <select name="sec">
               <option>59</option><option>58</option><option>57</option><option>56</option><option>55</option>
               <option>54</option><option>53</option><option>52</option><option>51</option><option>50</option>
               <option>49</option><option>48</option><option>47</option><option>46</option><option>45</option>
               <option>44</option><option>43</option><option>42</option><option>41</option><option>40</option>
               <option>39</option><option>38</option><option>37</option><option>36</option><option>35</option>
               <option>34</option><option>33</option><option>32</option><option>31</option><option>30</option>
               <option>29</option><option>28</option><option>27</option><option>26</option><option>25</option>
               <option>24</option><option>23</option><option>22</option><option>21</option><option>20</option>
               <option>19</option><option>18</option><option>17</option><option>16</option><option>15</option>
               <option>14</option><option>13</option><option>12</option><option>11</option><option>10</option>
               <option>09</option><option>08</option><option>07</option><option>06</option><option>05</option>
               <option>04</option><option>03</option><option>02</option><option>01</option><option>00</option>
               </select>
          </td>
       </tr>
       <tr>
          <td colspan="2" align="center">
              <input type="button" value="Submit Play" onClick="addPlay()" />
          </td>
       </tr>
       </form>
       </table>

    </xsl:template>

    <xsl:template match="team">
    <optgroup label="{@name}">
       <xsl:apply-templates select="player" />
    </optgroup>
    </xsl:template>

    <xsl:template match="player">
       <option value="{../@name}"><xsl:value-of select="@name" /></option>
    </xsl:template>

    </xsl:stylesheet>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="html" version="4.0" omit-xml-declaration="yes" />

        <xsl:template match="/">
            <xsl:apply-templates select="game" />
        </xsl:template>

        <xsl:template match="game">
            <xsl:apply-templates select="team" />
        </xsl:template>

        <xsl:template match="team">
            <xsl:variable name="team" select="@name" />
            <xsl:variable name="tfgmade2" select="count(//play[@team=$team and @action='makes 2-pt shot'])" />
            <xsl:variable name="tfgmade3" select="count(//play[@team=$team and @action='makes 3-pt shot'])" />
            <xsl:variable name="tfgmissed2" select="count(//play[@team=$team and @action='misses 2-pt shot'])" />
            <xsl:variable name="tfgmissed3" select="count(//play[@team=$team and @action='misses 3-pt shot'])" />
            <xsl:variable name="tfgm" select="$tfgmade2+$tfgmade3" />
            <xsl:variable name="tfga" select="$tfgm+$tfgmissed2+$tfgmissed3" />
            <xsl:variable name="tftm" select="count(//play[@team=$team and @action='makes free throw'])" />
            <xsl:variable name="tfta" select="count(//play[@team=$team and @action='misses free throw'])+$tftm" />
            <xsl:variable name="toff" select="count(//play[@team=$team and @action='grabs offensive rebound'])" />
            <xsl:variable name="tdef" select="count(//play[@team=$team and @action='grabs defensive rebound'])" />
            <xsl:variable name="ttotr" select="$toff+$tdef" />
            <xsl:variable name="tasst" select="count(//play[@team=$team and @action='assists'])" />
            <xsl:variable name="tst" select="count(//play[@team=$team and @action='steals ball'])" />
            <xsl:variable name="tto" select="count(//play[@team=$team and @action='commits turn-over'])" />
            <xsl:variable name="tpf" select="count(//play[@team=$team and @action='commits personal foul'])" />
            <xsl:variable name="tpts" select="2*$tfgmade2+3*$tfgmade3+$tftm" />

            <table class="bs">
                <tr>
                    <th colspan="9" class="title">
                        <xsl:value-of select="@name" /> [<xsl:value-of select="$tpts" />]
                    </th>
                </tr>
                <tr>
                    <th>Player</th>
                    <th>FGM-FGA</th>
                    <th>FTM-FTA</th>
                    <th>OFF-DEF-TOT</th>
                    <th>ASST</th>
                    <th>ST</th>
                    <th>TO</th>
                    <th>PF</th>
                    <th>PTS</th>
                </tr>

                <xsl:apply-templates select="player" />

                <tr>
                    <td colspan="9"><hr /></td>
                </tr>
                <tr>
                    <td class="name">Total</td>
                    <td>
                        <xsl:value-of select="$tfgm" />-<xsl:value-of select="$tfga" />
                    </td>
                    <td>
                        <xsl:value-of select="$tftm" />-<xsl:value-of select="$tfta" />
                    </td>
                    <td>
                        <xsl:value-of select="$toff" />-<xsl:value-of select="$tdef" />-<xsl:value-of select="$ttotr" />
                    </td>
                    <td>
                        <xsl:value-of select="$tasst" />
                    </td>
                    <td>
                        <xsl:value-of select="$tst" />
                    </td>
                    <td>
                        <xsl:value-of select="$tto" />
                    </td>
                    <td>
                        <xsl:value-of select="$tpf" />
                    </td>
                    <td>
                        <xsl:value-of select="$tpts" />
                    </td>
                </tr>
            </table>

            <table class="tpfg">
                <tr>
                    <td class="tpfg" width="100">Three-pt. FGs</td>
                    <td class="tpfg" width="50">
                        <xsl:value-of select="$tfgmade3" />
                    </td>
                    <td class="tpfg">
                        <xsl:apply-templates select="player" mode="threepoints" />
                    </td>
                </tr>
            </table>
        </xsl:template>

        <xsl:template match="player">
            <xsl:variable name="player" select="@name" />
            <xsl:variable name="fgmade2" select="count(//play[@player=$player and @action='makes 2-pt shot'])" />
            <xsl:variable name="fgmade3" select="count(//play[@player=$player and @action='makes 3-pt shot'])" />
            <xsl:variable name="fgmissed2" select="count(//play[@player=$player and @action='misses 2-pt shot'])" />
            <xsl:variable name="fgmissed3" select="count(//play[@player=$player and @action='misses 3-pt shot'])" />
            <xsl:variable name="fgm" select="$fgmade2+$fgmade3" />
            <xsl:variable name="fga" select="$fgm+$fgmissed2+$fgmissed3" />
            <xsl:variable name="ftm" select="count(//play[@player=$player and @action='makes free throw'])" />
            <xsl:variable name="fta" select="count(//play[@player=$player and @action='misses free throw'])+$ftm" />
            <xsl:variable name="off" select="count(//play[@player=$player and @action='grabs offensive rebound'])" />
            <xsl:variable name="def" select="count(//play[@player=$player and @action='grabs defensive rebound'])" />
            <xsl:variable name="totr" select="$off+$def" />
            <xsl:variable name="asst" select="count(//play[@player=$player and @action='assists'])" />
            <xsl:variable name="st" select="count(//play[@player=$player and @action='steals ball'])" />
            <xsl:variable name="to" select="count(//play[@player=$player and @action='commits turn-over'])" />
            <xsl:variable name="pf" select="count(//play[@player=$player and @action='commits personal foul'])" />
            <xsl:variable name="pts" select="2*$fgmade2+3*$fgmade3+$ftm" />

            <tr>
                <td class="name">
                    <xsl:value-of select="@name" /> (<xsl:value-of select="@position" />)
                </td>
                <td>
                    <xsl:value-of select="$fgm" />-<xsl:value-of select="$fga" />
                </td>
                <td>
                    <xsl:value-of select="$ftm" />-<xsl:value-of select="$fta" />
                </td>
                <td>
                    <xsl:value-of select="$off" />-<xsl:value-of select="$def" />-<xsl:value-of select="$totr" />
                </td>
                <td>
                    <xsl:value-of select="$asst" />
                </td>
                <td>
                    <xsl:value-of select="$st" />
                </td>
                <td>
                    <xsl:value-of select="$to" />
                </td>
                <td>
                    <xsl:value-of select="$pf" />
                </td>
                <td>
                    <xsl:value-of select="$pts" />
                </td>
            </tr>
        </xsl:template>

        <xsl:template match="player" mode="threepoints">
            <xsl:variable name="player" select="@name" />
            <xsl:variable name="pmade3" select="count(//play[@player=$player and @action='makes 3-pt shot'])" />
            <xsl:if test="$pmade3 > 0">
                <xsl:value-of select="$player" /> (<xsl:value-of select="$pmade3" />) &#160;
            </xsl:if>
        </xsl:template>

    </xsl:stylesheet>