Выберите только первое значение в поле grandparent при использовании apply-templates - PullRequest
0 голосов
/ 24 января 2020

xml:

<Item>
  <ItemGroup groupId="A">
    <ItemEntry>
      <CustomerRef>A123456</CustomerRef> <!-- need to select just this / first element value -->
    </ItemEntry>
    <ItemEntry>
      <CustomerRef>A123456</CustomerRef>
    </ItemEntry>
    <ItemEntry>
      <CustomerRef>A123456</CustomerRef>
    </ItemEntry>
  </ItemGroup>
<ItemGroup groupId="B">
  <ItemEntry>
    <CustomerRef>B123456</CustomerRef> <!-- need to select just this / first element value -->
  </ItemEntry>
  <ItemEntry>
    <CustomerRef>B123456</CustomerRef>
  </ItemEntry>
</ItemGroup>
</Item>

xsl:

<xsl:template match="ItemGroup" mode="PREMISE">
            <table>
                <thead>
                    <tr>
                        <td>
                            <xsl:value-of select="./@groupId" />
                        </td>
                        <td >
                            <xsl:value-of select="./ItemEntry/CustomerRef"></xsl:value-of>
                        </td>
                    </tr>
                </thead>
            </table>
</xsl:template> 

Результат: В настоящее время CustomerRef печатается столько раз, сколько появляется в прародительском узле ItemGroup

1 Ответ

0 голосов
/ 24 января 2020

Это работает:

<xsl:template match="ItemGroup" mode="PREMISE">
            <table>
                <thead>
                    <tr>
                        <td>
                            <xsl:value-of select="./@groupId" />
                        </td>
                        <td >
                            <xsl:value-of select="./ItemEntry[1]/CustomerRef"></xsl:value-of>
                        </td>
                    </tr>
                </thead>
            </table>
</xsl:template> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...