I "m pomocou XSLTprocessor skript získať dátaz externého zdroja. Teraz by som chcel otestovať, či je určitá hodnota prázdna a potom vrátiť prázdne pole. toto je kód, ktorý používam teraz v mojom štýli XSL.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<table border="1" style="width:600px;margin-top:20px">
<tr>
<th align="left" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Date</th>
<th align="left" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Location</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">City</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Country</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Facebook</th>
</tr>
<xsl:for-each select="//item">
<tr>
<td style="text-align:left;"><xsl:value-of select="date" /></td>
<td style="text-align:left;color:#ccc;"><xsl:value-of select="location" /></td>
<td style="text-align:right;"><xsl:value-of select="city "/></td>
<td style="text-align:right;"><xsl:value-of select="country" /></td>
<td style="text-align:right;"><a>
<xsl:attribute name="href">
<xsl:value-of select="website" />
</xsl:attribute>
<xsl:attribute name="target">new</xsl:attribute>
I"m Attending
</a></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Chcel by som mať podmienené vyhláseniehodnotu „webová stránka“, ktorá vráti odkaz na odkaz na udalosť Facebook. Ale keď sa v systéme, z ktorého pochádzajú údaje, nevyplní nič, nemalo by zobraziť odkaz (I "m Attending)
Ako to možno urobiť s testom XSL alebo nejakým podmieneným vyhlásením?
odpovede:
2 pre odpoveď č. 1Chcel by som mať podmienené vyhláseniehodnotu „webová stránka“ ktorý vracia odkaz na odkaz na udalosť Facebook. Ale keď nič nie je vyplnené v systéme, z ktorého pochádzajú údaje, nemali by sa zobrazovať odkaz (I "m Účasť)
Jednoduchý a elegantný spôsob, ako to urobiť v XSLT:
<xsl:apply-templates select="website[text()]"/>
Potom máte túto šablónu:
<xsl:template match="website">
<td style="text-align:right;">
<a href="{.}" target="new">I"m Attending</a>
</td>
</xsl:template>
Tu nemusíte overovať, či website
prvok existuje - XSLT procesor to robí za vás. Týmto spôsobom nemusíme písať žiadne explicitné podmienené inštrukcie a kód je jednoduchý, krátky a čitateľný.
1 pre odpoveď č. 2
Skúste to pre zobrazenie odkazu:
<xsl:if test="website/text()">
<a>
<xsl:attribute name="href">
<xsl:value-of select="website" />
</xsl:attribute>
<xsl:attribute name="target">new</xsl:attribute>
I"m Attending
</a>
</xsl:if>