Использование XSL IF для проверки появления элемента в XML - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть следующий XML-файл:

    <club>
      <person>
        <name>name</name>
        <ranking>1</ranking>
        <nationality>spanish</nationality>
        <joined>2007</joined>
        <joined>2009</joined >
      </person>

      <person>
        <name>name</name>
        <ranking>2</ranking>
        <nationality>english</nationality>
      </person>
    </club>

Я хотел бы создать файл XSLT, который может выполнять поиск в XML и проверять, присоединился ли человек (<joined>). Затем я хотел бы отобразить имя и год, к которому человек присоединился в таблице. Я не уверен, возможно ли это полностью, но любая помощь будет принята с благодарностью. (не все люди в списке присоединятся).

1 Ответ

0 голосов
/ 26 апреля 2018

Используйте это:

XSLT 2.0

<xsl:template match="information">
    <table>
        <xsl:for-each select="person[joined]">
            <tr>
                <td><xsl:value-of select="name"/></td>
                <td><xsl:value-of select="joined" separator=", "/></td>
            </tr>
        </xsl:for-each>
    </table>
</xsl:template>

См. Преобразование для XSLT 2.0 в https://xsltfiddle.liberty -development.net / eiZQaEZ

Для XSLT 1.0 вы можете изменить секунду td на

<td><xsl:for-each select="joined">
       <xsl:value-of select="."/>
       <xsl:if test="position() != last()">, </xsl:if>
    </xsl:for-each></td>

Преобразование для XSLT 1.0 https://xsltfiddle.liberty -development.net / eiZQaEZ / 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...