Как выбрать предшествующего брата внутри a для каждого цикла? - PullRequest
0 голосов
/ 25 мая 2019

Мой XML

    <?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <cd>
        <title>
            <name>Empire Burlesque1 </name>
        </title>
    </cd>
    <cd>
        <title>
            <name>Empire Burlesque 2</name>
        </title>
    </cd>
    <cd>
        <title>
            <name>Empire Burlesque 2</name>
        </title>
    </cd>
</catalog>

XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">

<xsl:for-each select="catalog/cd">
    <xsl:call-template name="currentValue" />
        <xsl:call-template name="prevValue" />
</xsl:for-each>

</xsl:template>

<xsl:template name="currentValue">
            <xsl:value-of select="title/name" />
</xsl:template>
<xsl:template name="prevValue">
            <xsl:value-of select="preceding-sibling::title[name][1]" />
</xsl:template>

</xsl:stylesheet>

Предыдущий брат не печатает ничего.Я хочу сохранить обе переменные и сравнить их.Можете ли вы помочь мне указать, что здесь не так?

1 Ответ

1 голос
/ 25 мая 2019

В настоящее время, когда вы проверяете предыдущий элемент, вы позиционируетесь на элементе cd, который имеет только другие элементы cd в качестве родственных элементов. Таким образом, вы хотите следующее выражение:

<xsl:value-of select="preceding-sibling::cd[1]/title/name" />
...