кто знает как сделать???
От: hooper11  
Дата: 14.04.05 09:27
Оценка:
Необходимо вывести постраничный список авторов, отсортированных по количеству написанных книг.
Под именем автора должен быть список книг, в написании которых учавствовал текущий автор.
На странице может быть не более 6 книг.
Книга, которая не попала на текущую страницу должна перейти на следующую страницу вместе с именем автора.
Авторы, которые не учавствовали в написании книг, присутствовать в списке не должны.
Количество книг на странице нужно вынести в глобальную переменную.

Например:

PAGE 1

author 1
***********************
book 1
book 4
book 7
book 9
book 10
***********************

author 3
***********************
book 1
***********************

PAGE 2

author 3
***********************
book 2
book 6
book 8
book 9
***********************

author 6
***********************
book 1
book 6

и т.д.

вот xml файл
<?xml-stylesheet type="text/xsl" href="D:\vano\qqq\xml_done\books1.xsl"?>
<root xmlns="http://www.epam.com/ROOTNS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.epam.com/ROOTNS
root.xsd">
<books xmlns="http://www.epam.com/BOOKSNS">
<book id="b1">
<name>book 1</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a1"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a3"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a6"/>
</book>
<book id="b2">
<name>book 2</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a2"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a3"/>
</book>
<book id="b3">
<name>book 3</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a5"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a8"/>
</book>
<book id="b4">
<name>book 4</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a9"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a1"/>
</book>
<book id="b5">
<name>book 5</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a9"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a7"/>
</book>
<book id="b6">
<name>book 6</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a6"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a3"/>
</book>
<book id="b7">
<name>book 7</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a1"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a4"/>
</book>
<book id="b8">
<name>book 8</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a3"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a5"/>
</book>
<book id="b9">
<name>book 9</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a1"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a3"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a6"/>
</book>
<book id="b10">
<name>book 10</name>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a1"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a2"/>
<author_reference xmlns="http://www.epam.com/AUTHORSNS" author_id="a6"/>
</book>
</books>
<authors xmlns="http://www.epam.com/AUTHORSNS">
<author id="a1">
<name>author 1</name>
</author>
<author id="a2">
<name>author 2</name>
</author>
<author id="a3">
<name>author 3</name>
</author>
<author id="a4">
<name>author 4</name>
</author>
<author id="a5">
<name>author 5</name>
</author>
<author id="a6">
<name>author 6</name>
</author>
<author id="a7">
<name>author 7</name>
</author>
<author id="a8">
<name>author 8</name>
</author>
<author id="a9">
<name>author 9</name>
</author>
<author id="a10">
<name>author 10</name>
</author>
</authors>
</root>


вот что я наваял не могу сделать счетчик чтобы выводилось как в примере

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:root="http://www.epam.com/ROOTNS" xmlns:books="http://www.epam.com/BOOKSNS" xmlns:authors="http://www.epam.com/AUTHORSNS" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="root:root">
<xsl:apply-templates select="authors:authors"/>
</xsl:template>
<xsl:template match="authors:authors">
<xsl:apply-templates select="authors:author">
<xsl:sort order="descending" select="count (//books:books/books:book [authors:author_reference/@author_id = current ()/@id])"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="authors:author">
<xsl:if test="//books:books/books:book [authors:author_reference/@author_id = current ()/@id]">
<h1>
<xsl:value-of select="authors:name"/>
</h1>
<xsl:apply-templates select="//books:books/books:book [authors:author_reference/@author_id = current ()/@id]"/>
</xsl:if>
</xsl:template>
<xsl:template match="books:book">
<xsl:value-of select="books:name"/>
<br/>
</xsl:template>
</xsl:stylesheet> помогите плз или хотя бы подскажите в каком направлнии двигаться. Заранее блогодарен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.