我碰巧遇到了一些代码片段,并且在使用css完成同样的事情时无法理解xsl的需要。 例如
<?xml-stylesheet type = "text/css" href = "6a.css" ?>
<ENG-COLLEGE>
<XYZ>
<USN>145456</USN>
<NAME>ABC</NAME>
<COLLEGE>TYUIT</COLLEGE>
<BRANCH>ISE</BRANCH>
<YEAR>2003</YEAR>
<EMAIL>abc@gmail.com</EMAIL>
</XYZ>
<ENG-COLLEGE>
用于样式化的等效CSS代码
USN{font-family:'sans serif';color:orange;font-size:15pt;}
NAME{font-family:'arial';color:red;font-size:15pt;}
COLLEGE{font-family:'Times New Roman';color:lime;font-size:15pt;}
BRANCH{font-family:'Comic Sans MS';color:gray;font-size:15pt;}
YEAR{font-family:'Century Gothic';color:blue;font-size:15pt;}
EMAIL{font-family:'Georgia';color:green;font-size:15pt;}
虽然使用xsl可以实现相同的样式,但涉及更多行代码
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns = "">
<xsl:template match = "ENG-COLLEGE">
<html><head><title>Test XSL</title>
</head><body bgcolor="lightgreen">
<center><h2>INFORMATION </h2>
<table border="1">
<tr><td>USN</td><td>NAME</td><td>COLLEGE</td><td>BRANCH</td><td>YEAR</td> <td>EMAIL</td></tr>
<xsl:for-each select ="VTU">
<tr>
<td> <xsl:value-of select = "USN" /></td>
<td><xsl:value-of select = "NAME" /></td>
<td><xsl:value-of select = "COLLEGE" /></td>
<td> <xsl:value-of select = "BRANCH" /></td>
<td><xsl:value-of select = "YEAR" /></td>
<td><xsl:value-of select = "EMAIL" /></td>
</tr>
</xsl:for-each>
</table>
</center>
</body></html>
</xsl:template>
</xsl:stylesheet>
我在这里错过了一些东西,我的意思是为什么任何人都会使用xsl进行样式,因为css可以让这项工作变得如此简单。
答案 0 :(得分:6)
CSS应用样式和定位。 XSLT将一个XML文档转换为另一个XML文档。他们根本没做同样的工作。
答案 1 :(得分:1)
我碰巧经历了一些事情 代码片段,无法理解 同样的事情需要xsl 可以使用CSS完成。例如
一般来说,面向CSS的示例的真实情况并非如此。
如果您的输入XML包含许多<XYZ>
元素:
<ENG-COLLEGE>
<XYZ>
<USN>145456</USN>
<NAME>ABC</NAME>
<COLLEGE>TYUIT</COLLEGE>
<BRANCH>ISE</BRANCH>
<YEAR>2003</YEAR>
<EMAIL>abc@gmail.com</EMAIL>
</XYZ>
<XYZ>
<USN>145456</USN>
<NAME>DEF</NAME>
...
</XYZ>
etc.
</ENG-COLLEGE>
并且您需要生成这些记录的表格,按NAME
元素的内容排序,省略YEAR
在2000之前的那些记录,其中EMAIL
地址被包围一个“mailto”链接......你会如何在CSS中做到这一点?