在xsl中选择具有相同值的多个元素

时间:2016-10-13 06:49:51

标签: xslt xslt-1.0 xslt-grouping

输入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>

如果找到具有相同值的元素,我需要合并元素。像上面一样,我需要创建Doc元素并添加带有值的元素。 我需要帮助,如何通过xslt实现这一目标。

1 个答案:

答案 0 :(得分:0)

使用xsl:key函数的Muenchian方法解决了我的问题。