2010-11-10 34 views
0

那麼我碰巧遇到了一些代碼片段,並不能理解使用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

回答

6

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

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>[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