-- 作者:yahuu
-- 发布时间:3/6/2007 4:53:00 PM
-- 请大家看看这个DOM的问题,怎么回事呢?急!
我用ASP文件通过查询数据库,动态生成了一个XML文件,然后想用XSLT做一个分页的且固定大小的表格,就是说让这个表格每页固定显示14条数据,末页如果数据不足14条,就显示空白行补足14条。 但是现在我也不知道为什么,我在IE浏览器中查看该页的时候,总是显示如下错误: 无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 -------------------------------------------------------------------------------- Microsoft JScript 运行时错误 'document' 未定义行 = 4, 列 = 4 (行是指距脚本块起始的偏移量)。属性或方法调用返回错误。 我的XSL文件代码如下: <?xml version="1.0" encoding="gb2312" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:huanglei" exclude-result-prefixes="msxsl user"> <msxsl:script implements-prefix="user"><![CDATA[ var page,sortField,valField,count; page=1; sortField = document.XSLDocument.SelectSingleNode("//xsl:for-each/@select"); valField= document.XSLDocument.SelectSingleNode("//xsl:variable/@select"); count= document.XMLDocument.selectNodes("//辅助材料").length; function divide(a,b) { var e,f; if(a%b==0) { e=parseInt(a/b); return e; } else { e=parseInt(a/b); f=e+1; return f; } } var pageall=divide(count,14); s.innerHTML=pageall; t.innerHTML=page; function order(field) { field1=field+14; sortField.value="/型号/产品/*/辅助材料[(position()≥"+field+")$and$(position()<"+field1+")]"; valField.value="count(/型号/产品/*/辅助材料[(position()≥"+field+")$and$(position()<"+field1+")])"; str=source.documentElement.transformNode(stylesheet); listing.innerHTML=str; s.innerHTML=pageall; t.innerHTML=page; } function ss() { page++; if(page>pageall) { page=pageall; alert('这已经是最后一页了!'); } order((page-1)*14); } function tt() { page--; if(page==0) { page=1; alert('这已经是第一页了!'); } order((page-1)*14); } ]]> </msxsl:script> <xsl:template match="/"> <html> <head> <title>装配工艺卡片</title> </head> <body background="bg.jpg"> <table border="0" width="1239"> <tr> <td align="center" width="309"><a href="zong.asp">返回首页</a></td> <td align="center" width="310"><a href="gygc.asp">装配工艺规程</a></td> <td align="center" width="310"><a href="gzgj.asp">总装仪器设备配套明细表</a></td> <td align="center" width="310"><a href="zsj.asp">总装直属件配套明细表</a></td> </tr> </table> <br></br> <div align="center" id="listing"> <xsl:apply-templates select="型号"/> </div> <div align="center"> <table> <tr align="center"> <td>当前: <span id="t"></span>/ <span id="s"></span> </td> <td width="100"> <input type="button" onclick="user:ss()" value="下一页" > </input> </td> <td width="100"> <input type="button" onclick="user:tt()" value="上一页" > </input> </td> </tr> </table> </div> </body> </html> </xsl:template> <xsl:template match="型号"> <table bgcolor="#F0FFF0"> <tr> <td align="center" colspan="10"><b><font size="5">五院总装与环境工程部辅助材料定额明细表<br></br></font></b></td> </tr> <tr> <td width="125" align="right">型号名称:</td> <td width="125"><xsl:value-of select="/型号/@型号名称"/></td> <td width="125" align="right">型号代号:</td> <td width="125"><xsl:value-of select="/型号/@型号代号"/></td> <td width="125" align="right">阶段标记:</td> <td width="114"><xsl:value-of select="/型号/@阶段标记"/></td> <td width="125" align="right">产品名称:</td> <td width="125"><xsl:value-of select="/型号/产品/@产品名称"/></td> <td width="125" align="right">产品代号:</td> <td width="125"><xsl:value-of select="/型号/产品/@产品代号"/></td> </tr> </table> <table border="1" bgcolor="#F0FFF0"> <tr> <td width="50" rowspan="2" align="center">序号</td> <td width="150" rowspan="2" align="center">名称</td> <td width="150" rowspan="2" align="center">牌号状态</td> <td width="150" rowspan="2" align="center">技术条件</td> <td width="150" rowspan="2" align="center">规格</td> <td width="50" rowspan="2" align="center">数量</td> <td width="70" rowspan="2" align="center">单位</td> <td colspan="3" align="center" height="30">对料记录</td> <td width="139" rowspan="2" align="center">备注</td> </tr> <tr> <td width="80" height="30" align="center">有/无</td> <td width="130" height="30" align="center">合格证</td> <td width="130" height="30" align="center">代料处理单号</td> </tr> <xsl:for-each select="/型号/产品/*/辅助材料[position()<14]"> <tr> <td height="30" align="center"><xsl:value-of select="@辅助材料序号"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料名称"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料牌号"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料技术条件"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料规格"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料数量"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料单位"/></td> <td height="30" align="center"><xsl:value-of select="辅助材料对料记录/@辅助材料对料记录标记"/></td> <td height="30" align="center"><xsl:value-of select="辅助材料对料记录/@辅助材料对料记录合格证"/></td> <td height="30" align="center"><xsl:value-of select="辅助材料对料记录/@辅助材料对料记录代料处理单号"/></td> <td height="30" align="center"><xsl:value-of select="@辅助材料备注"/></td> </tr> </xsl:for-each> <xsl:variable name="aa" select="count(/型号/产品/*/辅助材料[position()<14])"/> <xsl:variable name="bb" select="14-$aa"/> <div id="dd" > <xsl:value-of select="$bb+1" /> </div> <xsl:text>fgff</xsl:text> <xsl:call-template name="foreach"> <xsl:with-param name="i">1</xsl:with-param> <xsl:with-param name="val"> <html> <table> <tr> <td height="30" align="center">我</td> <td height="30" align="center">爱</td> <td height="30" align="center">我</td> <td height="30" align="center">的</td> <td height="30" align="center">老</td> <td height="30" align="center">婆</td> <td height="30" align="center">孙</td> <td height="30" align="center">天</td> <td height="30" align="center">博</td> <td height="30" align="center">同</td> <td height="30" align="center">志</td> </tr> </table> </html> </xsl:with-param> <xsl:with-param name="intend"><xsl:value-of select="$bb+1"/></xsl:with-param> </xsl:call-template> </table> </xsl:template> <xsl:template name="foreach"> <xsl:param name="i">1</xsl:param> <xsl:param name="val"></xsl:param> <xsl:param name="intend">1</xsl:param> <xsl:if test="$i < $intend"> <xsl:value-of select="$val" /> <xsl:call-template name="foreach"> <xsl:with-param name="i"><xsl:value-of select="$i+1" /></xsl:with-param> <xsl:with-param name="val"><xsl:value-of select="$val" /></xsl:with-param> <xsl:with-param name="intend"><xsl:value-of select="$intend"/></xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> 大家帮我看看是什么问题吧!谢谢啦!
|