/ / Test, ak hodnota je prázdna v XML s XSL štýlom - xml, xslt

Otestujte, či je hodnota prázdna v jazyku XML so štýlmi XSL - xml, xslt

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ď č. 1

Chcel 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>