Trädvy Permalänk
Medlem
Plats
Skänninge
Registrerad
Okt 2002

XML XLS hjälp

går det att skriva en IF sats att läsa 1xml och om den är ett visst värde läsa en annan tag ?

taggarna jag har är

<ItemNoUnknownFormat_ID18>A0010</ItemNoUnknownFormat_ID18> <_5_Description_2_ID194>900</_5_Description_2_ID194>

alltså om taggen är A0010 skall IF satsen läsa nästa tagg och skriva ut "900" och om A0010 ej finns med skall IF satsen inte skriva ut nått.

nån som kan detta bra ?. är det genomförbart eller måste jag sitta och försöka mig på en massa variablar ?

Mvh Magnus

Datorn: G4:a goes imperial
Fear can never kill u

Trädvy Permalänk
Medlem
Plats
Skänninge
Registrerad
Okt 2002

ingen som vet nått bra sätt ?
börjat skriva så här

<?if:starts-with(ItemNoUnknownFormat_ID18,'A0010')?>

men hur får jag den att OM A0010 skriva ut taggen
<_5_Description_2_ID194>900</_5_Description_2_ID194>

kom igen nu.. gnugga era geni knölar lite

Datorn: G4:a goes imperial
Fear can never kill u

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2004

Detta fungerade för mig:

XML-data:

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="getdescription.xsl"?> <root> <ItemNoUnknownFormat_ID18>A009</ItemNoUnknownFormat_ID18> <_5_Description_2_ID194>900</_5_Description_2_ID194> <ItemNoUnknownFormat_ID18>A0010</ItemNoUnknownFormat_ID18> <_5_Description_2_ID194>910</_5_Description_2_ID194> <ItemNoUnknownFormat_ID18>A0011</ItemNoUnknownFormat_ID18> <_5_Description_2_ID194>920</_5_Description_2_ID194> </root>

XSL-fil:

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="//ItemNoUnknownFormat_ID18"> <xsl:variable name="aValue" select="."/> <xsl:if test="$aValue = 'A0010'"> <!-- [1] is needed or we will get all _5_Description_2_ID194 --> <p>Description: <xsl:value-of select="following-sibling::_5_Description_2_ID194[1]"/></p> </xsl:if> </xsl:template> <!-- XSLT will output text content of nodes not matched by any template so we use this template to get rid of that. --> <xsl:template match="//_5_Description_2_ID194"/> </xsl:stylesheet>

Resultat av transformationen (som XML):

<?xml version="1.0" encoding="UTF-8"?> <p>Description: 910</p>