2013-12-10 9 views
0

У меня есть этот код XSLTXSLT создать новый 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> 

и я хочу, чтобы создать новый файл XML с помощью XSLT с отсортированных 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-процессоры не меняются, потому что вы «хотите» что-то. Как сказал Димитр, это невозможно сделать в чистом XSLT 1.0 - только с использованием EXSLT или XSLT 2.0 ('result-document'). –

ответ

0

Если я правильно понял, вы хотите вывести несколько документов из той же таблицы стилей XSLT (1.0).

Как эта ссылка: Splitting XML into multiple files with XSLT предлагает, это невозможно при помощи средств, предоставляемых в XSLT 1.0. Либо вы расширяете настройку XSLT 1.0 с помощью EXSLT (http://www.exslt.org/exsl/elements/document/index.html), либо вместо этого используете 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.

Обратите внимание, что вам также понадобится процессор, который способен XSLT 2.0, например, Saxon. И хотя вы об этом поразмыслите, подумайте также, нужно ли строго иметь одну таблицу стилей для вывода нескольких файлов и почему.

+0

Спасибо за ваш отзыв, но я нашел еще один способ этого. Спасибо снова – user3071235

0

Я могу придумать два способа сделать это с помощью XSLT 1.0: один - просто вставить отсортированные данные в выходной HTML-код, и это должно быть относительно просто, чтобы извлечь нужные вам данные.

Другое - использовать сообщение xsl: для вывода данных, которые вы хотите в качестве сообщений, и реализовать механизм для записи этого вывода.

+0

Спасибо за ваш ответ, но я нашел другой путь к нему – user3071235

Смежные вопросы