Группировка в XSLT
От: ale-805  
Дата: 16.01.03 10:10
Оценка:
Вобщем вопросец:
Есть такой фрагмент:

<storage id="2">
    Энергетиков склад
    <product id="1">
        Товары
        <product id="2">
            Товары оптовые
            <product id="4">
                Товар 1
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>1</num>
                    <nums quantity="1.000" summa="1.00" finalElement="1"/>
                </doc>
            </product>
        </product>
    </product>
    <product id="1">
        Товары
        <product id="3">
            Товары розничные
            <product id="5">
                Товар 3
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>1</num>
                    <nums quantity="3.000" summa="9.00" finalElement="1"/>
                </doc>
            </product>
        </product>
    </product>
</storage>

Как видно иерархия товаров следующая:
Товары -> Товары оптовые -> Товар 1
и
Товары -> Товары розничные -> Товар 3
Общее звено: "Товары"
Вот мне нужен XSLT, который преобразует данную иерархию в следующую:
<storage id="2">
    Энергетиков склад
    <product id="1">
        Товары
        <product id="2">
            Товары оптовые
            <product id="4">
                Товар 1
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>1</num>
                    <nums quantity="1.000" summa="1.00" finalElement="1"/>
                </doc>
            </product>
        </product>
        <product id="3">
            Товары розничные
            <product id="5">
                Товар 3
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>1</num>
                    <nums quantity="3.000" summa="9.00" finalElement="1"/>
                </doc>
            </product>
        </product>
    </product>
</storage>

Ну, соответственно, если бы было, допустим:
Товары -> Товары оптовые -> Товар 1
и
Товары -> Товары оптовые -> Товар 2
то надо было бы:
<storage id="2">
    Энергетиков склад
    <product id="1">
        Товары
        <product id="2">
            Товары оптовые
            <product id="4">
                Товар 1
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>1</num>
                    <nums quantity="1.000" summa="1.00" finalElement="1"/>
                </doc>
            </product>
            <product id="5">
                Товар 2
                <doc id="505" date="2002-12-21T18:30:58" finalElement="1">
                    <num>3</num>
                    <nums quantity="3.000" summa="9.00" finalElement="1"/>
                </doc>
            </product>
        </product>
    </product>
</storage>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.