Я полагаю, что вы можете использовать xsl: key здесь, чтобы найти элементы AdditionalPvtDetails , пока они расположены на Account elements
<xsl:key name="additional" match="AdditionalPvtDetails" use="@id" />
При этом был создан ключ с именем Additional , который можно использовать для поиска AdditionalPvtDetails с использованием их атрибута id . Например, предполагая, что вы были размещены в элементе Account , вы можете найти пол учетной записи следующим образом:
<xsl:value-of select="key('additional', @id)/PvtGender" />
В качестве простого примера рассмотрим этот XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="yes"/>
<xsl:key name="additional" match="AdditionalPvtDetails" use="@id" />
<xsl:template match="/">
<xsl:apply-templates select="AccountDetails/Account" />
</xsl:template>
<xsl:template match="Account">
<xsl:value-of select="concat('AccountID: ', @id, ' ')" />
<xsl:value-of select="concat('Gender: ', key('additional', @id)/PvtGender, ' ')" />
</xsl:template>
</xsl:stylesheet>
При применении к вашему образцу XML возвращается следующее:
AccountID: 110095115 Gender: FEMALE
AccountID: 110095163 Gender: FEMALE
AccountID: 110095180 Gender: FEMALE