Я хочу сгруппировать по ссылке ниже. XML входной файл
<root>
<row>
<Company>HHH</Company>
<Posting_Key>40</Posting_Key>
<Reference>12345</Reference>
<Assignment>54321</Assignment>
</row>
<row>
<Company>HHH</Company>
<Posting_Key>15</Posting_Key>
<Reference>12345</Reference>
<Assignment>321</Assignment>
</row>
<row>
<Company>HHH</Company>
<Posting_Key>15</Posting_Key>
<Reference>12345</Reference>
<Assignment>311</Assignment>
</row>
<root>
<row>
<Company>SSS</Company>
<Posting_Key>40</Posting_Key>
<Reference>67890</Reference>
<Assignment>78968</Assignment>
</row>
<row>
<Company>SSS</Company>
<Posting_Key>15</Posting_Key>
<Reference>67890</Reference>
<Assignment>98769</Assignment>
</row>
Требуемый вывод, где ключ проводки 40 находится внутри строки, а ключ проводки 15 находится внутри деталей в этой строке.
<root>
<row>
<Company>HHH</Company>
<Posting_Key>40</Posting_Key>
<Reference>12345</Reference>
<Assignment>54321</Assignment>
<details>
<Company>HHH</Company>
<Posting_Key>15</Posting_Key>
<Reference>12345</Reference>
<Assignment>54321</Assignment>
</details>
<details>
<Company>HHH</Company>
<Posting_Key>15</Posting_Key>
<Reference>12345</Reference>
<Assignment>311</Assignment>
</details>
</row>
<row>
<Company>SSS</Company>
<Posting_Key>40</Posting_Key>
<Reference>67890</Reference>
<Assignment>78968</Assignment>
<details>
<Company>SSS</Company>
<Posting_Key>15</Posting_Key>
<Reference>67890</Reference>
<Assignment>98769</Assignment>
</details>
</row>
</root>
Текущий XSL-код, он получает только те данные в строке, где ключ проводки равен 40. Как проверить одноуровневый ключ проводки 40 или 15 для вывода правильного значения в разделе сведений?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:template match="root">
<root>
<xsl:for-each-group select="row[Posting_Key='40']" group-by="Reference">
<row>
<xsl:value-of select="Company_Code"/>
<xsl:value-of select="Posting_Key"/>
<xsl:value-of select="Reference"/>
<xsl:value-of select="Assignment"/>
<xsl:for-each select="current-group()">
<details>
<xsl:value-of select="Company_Code"/>
<xsl:value-of select="Posting_Key"/>
<xsl:value-of select="Reference"/>
<xsl:value-of select="Assignment"/>
</details>
</xsl:for-each>
</row>
</xsl:for-each-group>
</root>
</xsl:template>
</xsl:stylesheet>
это только позволяет получить данные в строке, где ключ проводки равен 40. Как проверить родственный ключ отправки 40 или 15, чтобы вывести правильное значение в разделе сведений?