Выбор нескольких элементов с одинаковыми значениями в xsl

Входной XML:

<Root>
    <NodeElement>
        <Element1>44</Element1>
        <Element2>472</Element2>            
        <Element3>A1.PDF</Element3> 
    </NodeElement>
    <NodeElement>
        <Element1>45</Element1>
        <Element2>472</Element2>            
        <Element3>A1.PDF</Element3> 
    </NodeElement>
    <NodeElement>
        <Element1>1318</Element1>
        <Element2>345</Element2>            
        <Element3>B1.PDF</Element3> 
    </NodeElement>
    <NodeElement>
        <Element1>1319</Element1>
        <Element2>345</Element2>            
        <Element3>C1.PDF</Element3> 
    </NodeElement>
    ..
    ..
    ..
</Root>

Требуемый вывод:

<Docs>
    <Doc>
        <Name> A1.PDF</Name>
        <Units>
            <Unit>
                <Element1>44</Element1>
                <Element2>472</Element2>  
            </Unit>
            <Unit>
                <Element1>45</Element1>
                <Element2>472</Element2> 
            </Unit>         
        </Units>
    </Doc>
    <Doc>
        <Name> B1.PDF</Name>
        <Units>
            <Unit>          
                <Element1>1318</Element1>
                <Element2>345</Element2>            
            </Unit>         
        </Units>
    </Doc>
    <Doc>
        <Name> C1.PDF</Name>
        <Units>
            <Unit>          
                <Element1>1319</Element1>
                <Element2>345</Element2>            
            </Unit>         
        </Units>
    </Doc>
        ..
        ..
        ..
</Docs>

Мне нужно объединить элементы, если я нашел элементы с одинаковыми значениями. Как и выше, мне нужно создать элемент документа и добавить к нему элементы со значениями. Мне нужна помощь, как этого можно добиться с помощью xslt.


person Mandar Kale    schedule 13.10.2016    source источник
comment
(1) минимальный воспроизводимый пример приветствуется. (2) Группировка зависит от вашей версии XSLT; XSLT 1.0 вам, возможно, придется использовать мюнхенский; XSLT 2.0 Функция xsl:for-each-group. (3) Если вы выполните пункт 1 и укажете свою версию XSLT, вы можете получить решение в течение нескольких часов. НО вы должны описать через edit, как генерировать свой вывод.   -  person uL1    schedule 13.10.2016


Ответы (1)


Мюнхенская методология, использующая функцию xsl:key, решила мою проблему.

person Mandar Kale    schedule 14.10.2016