html条件格式: DSO & CSS
想知道在html中用DSO绑定的数据如何根据不同的数值以不同的格式显示出来… 不知道DSO是什么。请把题目详细描述。
究竟要多少种格式? 其实百度一下你会解决的 DSO是Data Source(Sourcing?) Object. 先用xml存放数据, 再用html的 "datasrc=#xmlxxxx" 在一个容器中显示数据。 其中一些内容需要根据数值(比如超过某值, 或者等于某特定字符串)的不同用不同的样式显示出来, 比如改变字体颜色。现在用javascript在加载完数据后再一个一个改变, 总会有点别扭(加载过程中是一种样式, 加载完一闪一闪的变了个样)。想知道有没办法在加载前就改变。我试过把html标记写在xml中,结果华丽地出错… 原来是指XML的数据岛。
若要实现根据数值不同以不同格式显示,必须对数值进行判断,应该使用javascript读取。https://www.gdutbbs.com/thread-77939-1-1.html 这里有关于DOM模型方式访问XML文件的例子。
同时发现我的电脑里有一个不错的例子。
<?xml version="1.0" encoding="gb2312"?>
<?xml:stylesheet type="text/xsl" href="achie.xsl"?>
<学生成绩单>
<学生成绩>
<学号>001</学号>
<姓名>庄一飞</姓名>
<外语>78</外语>
<高等数学>70</高等数学>
<大学物理>80</大学物理>
<政治>75</政治>
<体育>80</体育>
<总分>383</总分>
</学生成绩>
<学生成绩>
<学号>002</学号>
<姓名>罗不凡</姓名>
<外语>80</外语>
<高等数学>75</高等数学>
<大学物理>75</大学物理>
<政治>80</政治>
<体育>70</体育>
<总分>380</总分>
</学生成绩>
<学生成绩>
<学号>003</学号>
<姓名>樊兴</姓名>
<外语>76</外语>
<高等数学>69</高等数学>
<大学物理>79</大学物理>
<政治>85</政治>
<体育>82</体育>
<总分>391</总分>
</学生成绩>
<学生成绩>
<学号>004</学号>
<姓名>吴正雨</姓名>
<外语>80</外语>
<高等数学>80</高等数学>
<大学物理>75</大学物理>
<政治>70</政治>
<体育>70</体育>
<总分>375</总分>
</学生成绩>
<学生成绩>
<学号>005</学号>
<姓名>曾先锋</姓名>
<外语>70</外语>
<高等数学>75</高等数学>
<大学物理>80</大学物理>
<政治>77</政治>
<体育>70</体育>
<总分>372</总分>
</学生成绩>
<学生成绩>
<学号>006</学号>
<姓名>金星</姓名>
<外语>90</外语>
<高等数学>80</高等数学>
<大学物理>70</大学物理>
<政治>65</政治>
<体育>60</体育>
<总分>365</总分>
</学生成绩>
<学生成绩>
<学号>007</学号>
<姓名>缚寒</姓名>
<外语>78</外语>
<高等数学>87</高等数学>
<大学物理>67</大学物理>
<政治>78</政治>
<体育>80</体育>
<总分>390</总分>
</学生成绩>
<学生成绩>
<学号>008</学号>
<姓名>柳莺</姓名>
<外语>90</外语>
<高等数学>60</高等数学>
<大学物理>70</大学物理>
<政治>80</政治>
<体育>75</体育>
<总分>375</总分>
</学生成绩>
<学生成绩>
<学号>009</学号>
<姓名>成翼</姓名>
<外语>78</外语>
<高等数学>75</高等数学>
<大学物理>86</大学物理>
<政治>89</政治>
<体育>70</体育>
<总分>398</总分>
</学生成绩>
<学生成绩>
<学号>010</学号>
<姓名>熊一丹</姓名>
<外语>90</外语>
<高等数学>80</高等数学>
<大学物理>60</大学物理>
<政治>70</政治>
<体育>72</体育>
<总分>372</总分>
</学生成绩>
</学生成绩单>
achie.xsl
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<!--主模板:调用成绩模板,设计显示界面和布局,计算平均值-->
<xsl:template match="/">
<HTML>
<HEAD>
<STYLE>
BODY {margin:0}
.bg {font:12pt Verdana; background-color:ffffff; color:BLUE}
H1 {font:bold 14pt Verdana; width:100%; margin-top:1em}
.row {font:10pt Verdana; border-bottom:1px solid #CC88CC}
.header {font:bold 9pt Verdana; cursor:hand; padding:2px; border:2px outset gray}
.up {background-color:#DDFFDD;}
.down {background-color:#FFcc99;}
</STYLE>
</HEAD>
<SCRIPT><xsl:comment><![CDATA[
function sort(field)
{
sortField.value = field;
<!-- set cursor to watch here? -->
listing.innerHTML = source.documentElement.transformNode(stylesheet);
}
]]></xsl:comment></SCRIPT>
<SCRIPT for="window" event="onload"><xsl:comment><![CDATA[
stylesheet = document.XSLDocument;
source = document.XMLDocument;
sortField = document.XSLDocument.selectSingleNode("//@order-by");
]]></xsl:comment></SCRIPT>
<BODY>
<TABLE width="100%" cellspacing="0">
<TR>
<TD class="bg"/>
<TD class="bg">
<H1><xsl:value-of select="学生成绩单/标题"/></H1>
<xsl:apply-templates select="学生成绩单/公布日期"/>
</TD>
</TR>
<TR>
<TD class="bg" width="120" valign="top">
</TD>
<TD class="bg" valign="top">
<DIV id="listing"><xsl:apply-templates match="学生成绩单"/></DIV>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<!--成绩模板:调用各科成绩模板,控制成绩显示表格,排序-->
<xsl:template match="学生成绩单">
<TABLE STYLE="background-color:white">
<THEAD>
<TD width="90"><DIV class="header" onClick="sort('学号')">学号</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('姓名')">姓名</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('外语')">外语</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('高等数学')">高等数学</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('大学物理')">大学物理</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('政治')">政治</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('体育')">体育</DIV></TD>
<TD width="90"><DIV class="header" onClick="sort('总分')">总分</DIV></TD>
</THEAD>
<xsl:for-each select="学生成绩" order-by="学号">
<TR>
<xsl:for-each select="总分">
<xsl:if expr="this.nodeTypedValue > 385">
<xsl:attribute name="class">up</xsl:attribute>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="总分">
<xsl:if expr="this.nodeTypedValue < 380">
<xsl:attribute name="class">down</xsl:attribute>
</xsl:if>
</xsl:for-each>
<TD><DIV class="row"><xsl:value-of select="学号"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="姓名"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="外语"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="高等数学"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="大学物理"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="政治"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="体育"/></DIV></TD>
<TD><DIV class="row"><xsl:value-of select="总分"/></DIV></TD>
</TR>
</xsl:for-each>
</TABLE>
</xsl:template>
<!--各科成绩摸板:取得格式标准的各科成绩数据,其实这里只用给总分加模板-->
<xsl:template match="总分">
<xsl:eval>formatNumber(this.nodeTypedValue, "001.0")</xsl:eval>
</xsl:template>
<xsl:template match="公布日期">
<xsl:eval>formatDate(this.nodeTypedValue, " yyyy MMMM dd")</xsl:eval>
<xsl:eval>formatTime(this.nodeTypedValue, "tt hh:mm")</xsl:eval>
</xsl:template>
</xsl:stylesheet>
页:
[1]