2013-12-10 191 views
0

我有這樣的XSLT代碼XSLT創建一個新的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <xsl:output method="html"/> 
    <xsl:template match="/"> 
    <html> 
    <head> 
    <title></title> 
    <link rel="stylesheet" href="css/xsl_style.css" type="text/css"/> 
    </head> 
    <body> 
    <div class="tableStyle" > 
     <table id="products_table"> 
     <tbody> 
     <tr bgcolor="#B5E4EA"> 
      <td>A/A</td> 
      <td>Product Name</td> 
      <td>Price</td> 
      <td>Corpration</td> 
      <td>Category</td> 
     </tr> 
     <xsl:variable name="allProducts" select="auction_products/product" /> 
     <xsl:for-each select="$allProducts"> 
      <xsl:sort select="category"/> 
      <xsl:variable name="pos" select="position()" /> 
      <tr> 
      <td><xsl:value-of select="$allProducts[$pos]/count_products"/></td> 
      <td><a href="offer.php"><xsl:value-of select="product_name"/></a></td> 
      <td><a href="offer.php"><xsl:value-of select="price"/></a></td> 
      <td><a href="offer.php"><xsl:value-of select="corporation"/></a></td> 
      <td><a href="offer.php"><xsl:value-of select="category"/></a></td> 
      </tr> 
     </xsl:for-each> 
     </tbody> 
     </table> 
    </div> 
    </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

,我想通過創建XSLT一個新的XML文件不可能做排序data.Is在XSLT版本1?我嘗試了xsl:document但我沒有成功。

+1

http://stackoverflow.com/questions/4036233/splitting-xml-into-multiple-files-with-xslt –

+0

可能的重複我嘗試該解決方案,但沒有工作..我不想做它與xslt版本2. – user3071235

+0

XSLT處理器不會因爲您「需要」某些內容而更改。正如Dimitre所說,這不能在純粹的XSLT 1.0中完成 - 只能使用EXSLT或XSLT 2.0('result-document')。 –

回答

0

如果我理解正確,您希望從同一個XSLT(1.0)樣式表中輸出多個文檔。

由於此鏈接:Splitting XML into multiple files with XSLT暗示,這在XSLT 1.0提供的方法中是不可能的。您可以使用EXSLT(http://www.exslt.org/exsl/elements/document/index.html)擴展XSLT 1.0設置,也可以使用XSLT 2.0。

如果你決定使用XSLT 2.0,你顯然需要版本信息更改爲:

<xsl:stylesheet version="2.0"> 

然後,結合result-document到您的樣式表。我建議您在網上尋找適當的信息,例如這裏:http://saxonica.com/documentation9.4-demo/html/xsl-elements/result-document.html

請注意,您還需要一個能像0123x這樣的處理器,就像撒克遜一樣。當你思考這個問題時,還要考慮是否有必要讓一個樣式表輸出幾個文件以及爲什麼。

+0

感謝您的回覆,但我找到了另一種方式來解決它。再次感謝 – user3071235

0

我可以想到用XSLT 1.0做到這一點的兩種方法 - 一種是簡單地將已排序的數據嵌入到輸出html中,從數據中提取所需的數據應該是一件相對簡單的事情。

另一個是使用xsl:message來輸出你想要的數據作爲消息,並實現一個記錄該輸出的機制。

+0

感謝你的迴應,但我找到了另一種方式 – user3071235