获取Xsl中的唯一记录并使用转换后的XML中的值

获取Xsl中的唯一记录并使用转换后的XML中的值,xml,xslt,xpath,transformation,Xml,Xslt,Xpath,Transformation,我有一个类似于以下结构的输入XML: <request> <X> <Y> ... <Cid>1</Cid> <Sid>2</Sid> <Pid> <A1> .. </A1> </Pid>

我有一个类似于以下结构的输入XML:

<request>
  <X>
    <Y>
        ...
        <Cid>1</Cid>
        <Sid>2</Sid>
        <Pid>
            <A1>
                ..
            </A1>
        </Pid>
    </Y>
  </X>
</request>
<request>
  <X>
    <Y>
        ...
        <Cid>1</Cid>
        <Sid>3</Sid>
        <Pid>
            <A1>
                ..
            </A1>
        </Pid>
    </Y>
  </X>
</request>
<request>
  <X>
    <Y>
        ...
        <Cid>1</Cid>
        <Sid>2</Sid>
        <Pid>
            <A1>
                ..
            </A1>
        </Pid>
    </Y>
  </X>
</request>
<request>
  <X>
    <Y>
        ...
        <Cid>2</Cid>
        <Sid>2</Sid>
        <Pid>
            <A1>
                ..
            </A1>
        </Pid>
    </Y>
  </X>
</request>
我必须在转换的XML顶部提取几个唯一的Id组合[Cid和Sid]。从Pid、A1、Y等获取的其余数据将被转换并放在其他DTLS节点下,该节点位于所有Id创建之后。输出如下所示:

<Id>
        <Id1>2</Id1>
        <Id2>1</Id2>
</Id>
<Id>
        <Id1>3</Id1>
        <Id2>1</Id2>
</Id>
<Id>
        <Id1>2</Id1>
        <Id2>2</Id2>
</Id>
<otherDtls>
    .....
<otherDtls>
请注意,[Cid值“1”和Sid值“2”的组合是重复的,因此在转换的XML中只出现一次。 另外,请注意,Cid值在Id2中,Sid值在Id1中。我找不到任何有效的解决方案来提取[Cid和Sid]的唯一Id组合,并获取用于更改标记名和在顶部打印的值


有人能帮忙吗?

这是一个,使用一个连接Cid和Sid的分组键,例如..

您假设的是XSLT 1.0。