你好,我對xslt非常陌生,我陷入了一個問題,我需要排序子節點,無論他們擁有什麼父母並顯示排列的內容。所以XML文件是XSLT對兩個不同節點的子節點進行排序
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<report>
<rowsbypage>5</rowsbypage><!--added to complete the solution-->
<contenido>
<page>
<pagenumber>1</pagenumber>
<row regnum="0">
<column name="group_id" type="number">
<value><![CDATA[8]]></value>
<group_id type="number"><![CDATA[8]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[CTA:Financials]]></value>
<group_name type="text"><![CDATA[CTA:Financials]]></group_name>
</column>
</row>
<row regnum="1">
<column name="group_id" type="number">
<value><![CDATA[9]]></value>
<group_id type="number"><![CDATA[9]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[CTA:HR]]></value>
<group_name type="text"><![CDATA[CTA: RH]]></group_name>
</column>
</row>
<row regnum="2">
<column name="group_id" type="number">
<value><![CDATA[7]]></value>
<group_id type="number"><![CDATA[7]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[CTA:Accounting]]></value>
<group_name type="text"><![CDATA[CTA:Accounting]]></group_name>
</column>
</row>
<row regnum="3">
<column name="group_id" type="number">
<value><![CDATA[2]]></value>
<group_id type="number"><![CDATA[2]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[CTA:Shop]]></value>
<group_name type="text"><![CDATA[CTA:Shop]]></group_name>
</column>
</row>
<row regnum="38">
<column name="group_id" type="number">
<value><![CDATA[3]]></value>
<group_id type="number"><![CDATA[3]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[P:Admins]]></value>
<group_name type="text"><![CDATA[P:Admins]]></group_name>
</column>
</row>
</page>
<page>
<pagenumber>2</pagenumber>
<row regnum="39">
<column name="group_id" type="number">
<value><![CDATA[1]]></value>
<group_id type="number"><![CDATA[1]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[P:Sys]]></value>
<group_name type="text"><![CDATA[P:Sys]]></group_name>
</column>
</row>
<row regnum="40">
<column name="group_id" type="number">
<value><![CDATA[5]]></value>
<group_id type="number"><![CDATA[5]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[P:Dir]]></value>
<group_name type="text"><![CDATA[P:Dir]]></group_name>
</column>
</row>
<row regnum="41">
<column name="group_id" type="number">
<value><![CDATA[6]]></value>
<group_id type="number"><![CDATA[6]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[P:Ge]]></value>
<group_name type="text"><![CDATA[P:Ge]]></group_name>
</column>
</row>
<row regnum="42">
<column name="group_id" type="number">
<value><![CDATA[4]]></value>
<group_id type="number"><![CDATA[4]]></group_id>
</column>
<column name="group_name" type="text">
<value><![CDATA[P:Req]]></value>
<group_name type="text"><![CDATA[P:Req]]></group_name>
</column>
</row>
</page>
</contenido>
</report>
,我需要整理得到:
Page 1
Group ID Group Name
1 P:Sys
2 CTA:Shop
3 P:Admins
4 P:Req
5 P:Dir
Page2
Group ID Group Name
6 P:Ge
7 CTA:Accounting
8 CTA:Financials
9 CTA:HR
我會很高興有這方面的幫助,親切的問候
感謝您的幫助下你的反應喬爾和邁克爾我結束了這一點,我添加一個標籤的行數一頁一頁地和xsl:
好後邁克爾的最後意見,即每個頁面排序的所有記錄一次又一次,最後的XSL的樣子:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">
<xsl:output method="html" encoding="iso-8859-1" version="5.0" />
<xsl:template match="/" >
<xsl:variable name="rowsByPage" select="report/rowsbypage" />
<xsl:variable name="rows">
<xsl:for-each select="report/contenido/page/row" >
<xsl:sort select="column/group_id" data-type="number" />
<div>
<xsl:for-each select="column" >
<div><xsl:value-of select="value"/></div>
</xsl:for-each>
</div>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="exsl:node-set($rows)/div[position() mod $rowsByPage = 1]" >
<div>
<div>Page <xsl:value-of select="position()" /></div>
<xsl:for-each select=". | following-sibling::div[position() < $rowsByPage]">
<xsl:copy-of select="." />
</xsl:for-each>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
** 1 **什麼。確定在排序後分配給每個組的頁碼?** 2。**您是否真的想要如下所示的**文本輸出? –
1.頁碼由頁面可以包含的行數分配,2 。沒有這個例子是簡單的輸出在一個html網格上 – sbasurto
在這個例子中,一個頁面只能包含5行。 – sbasurto