Больше чем и меньше чем условие в xsl - PullRequest
0 голосов
/ 25 июня 2019

Я хотел бы иметь условие больше и меньше, чем в xsl.

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
</catalog>

xslt:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <body>
                <h2>My CD Collection</h2>
                <table border="1">
                    <xsl:for-each select="catalog/cd">
                        <tr>
                            <td>
                                <xsl:value-of select="title"/>
                            </td>
                            <xsl:choose>
                                <xsl:when test="price &gt; '9' and price &lt; '10'">
                                    <td bgcolor="#B22222">
                                        <xsl:value-of select="artist"/>
                                    </td>
                                </xsl:when>
                            </xsl:choose>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet> 

Я пытался

<xsl:when test="price &gt; 9 and price &lt; 10">.

Но естьне работает.

Ожидаемый результат: отображение записей с ценой от 9 до 10. Фактический результат: ничего не отображается

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Я добавил пространство имен xsl, и оно работает нормально.

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <body>
                <h2>My CD Collection</h2>
                <table border="1">
                    <xsl:for-each select="catalog/cd[price &gt; '9' and price &lt; '10']">
                        <tr>
                            <td>
                                <xsl:value-of select="title"/>
                            </td>
                            <td bgcolor="#B22222">
                                <xsl:value-of select="artist"/>
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet> 

Выход.

<html>
   <body>
      <h2>My CD Collection</h2>
      <table border="1">
         <tr>
            <td>Hide your heart</td>
            <td bgcolor="#B22222">Bonnie Tyler</td>
         </tr>
      </table>
   </body>
</html>
0 голосов
/ 25 июня 2019
I think are you want following:-

<xsl:template match="catalog/cd">
<xsl:choose>
<xsl:when test="price &gt; 9 and price &lt; 10">
<xsl:copy-of select="*"/>
</xsl:when>
</xsl:choose>
</xsl:template>

Выход: -

<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...