与css相比,xsl需要什么?

问题描述:

那么我碰巧遇到了一些代码片段,并不能理解使用css可以完成同样的事情时对xsl的需求。 例如与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>[email protected]</EMAIL> 
    </XYZ> 
<ENG-COLLEGE> 

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;} 

Althought相同的造型可以使用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> 

以及我失去了实现造型等效CSS代码这里的一些东西,我的意思是为什么任何人使用xsl时,CSS可以使这项工作如此简单。

+0

嗯...我不认为这是一个正确的问题。很明显,OP从发布的例子知道什么是CSS和XSLT。所以这是一种主观的“相对”问题。 – 2010-11-10 19:26:14

+0

我认为这是一个足够真正的问题:如果OP认为CSS可以完成XSLT所能做的一切,那么OP并不真正了解XSLT的用途。 – LarsH 2010-11-10 21:53:46

+0

@LarsH:我不同意。如果OP的意图是理解他/她没有意识到的某些用例,那么这个问题就不会被称为“相对”的问题。作为一个关于如何不帮助其他人的证明,请运行一个关于'[xslt]'标签的搜索,你会在列表顶部找到一些混淆结果的问题。 – 2010-11-11 16:17:33

CSS应用样式和定位。 XSLT将一个XML文档转换为另一个。他们根本没有做同样的工作。

+0

当我在浏览器中打开myfile.xml时,我获得了相同的视图。我应该在哪种情况下使用CSS,哪一种使用xsl? – Rahul 2010-11-10 18:32:31

+0

当您想要应用样式和定位时,您可以使用CSS,并且当您想要将一个XML文档转换为另一个XML文档时使用XSL。 – 2010-11-10 18:33:33

+0

@Rahul:CSS不能被XML解析器解析。 XSL是。 – BalusC 2010-11-10 18:34:21

嗯,我碰巧经过一些 代码段运行并且不可能了解 对XSL的需求当一回事 可以使用CSS来完成。例如,

对于那些面向CSS的示例而言,真实情况并非如此。 如果输入XML包含了许多<XYZ>元素:

<ENG-COLLEGE> 
    <XYZ> 
    <USN>145456</USN> 
    <NAME>ABC</NAME> 
    <COLLEGE>TYUIT</COLLEGE> 
    <BRANCH>ISE</BRANCH> 
    <YEAR>2003</YEAR> 
    <EMAIL>[email protected]</EMAIL> 
    </XYZ> 
    <XYZ> 
    <USN>145456</USN> 
    <NAME>DEF</NAME> 
    ... 
    </XYZ> 
    etc. 
</ENG-COLLEGE> 

,你需要产生这些记录的表,由NAME元素的内容进行排序,忽略那些YEAR是2000年以前,与EMAIL地址被一个“mailto”链接包围......你如何在CSS中做到这一点?

+0

+1一个很好的答案。 – 2010-11-11 03:20:10

+0

是的,但请注意,除了排序(不知道“mailto:”链接,因为它可以与propietary CSS posible)其他的东西可以用CSS来完成。 – 2010-11-11 16:09:59

+0

@Alej:我没有意识到CSS可以过滤文本节点的值。 – LarsH 2010-11-12 02:44:53