Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   (xlst) xml 2 cls (https://boardunity.de/xlst-xml-2-cls-t9856.html)

nogules 17.02.2013 12:25

(xlst) xml 2 cls
 
Hi

Vieleicht kann mir ja hier einer helfen.
Folgendes Problem (hab von dem ganzen keine Ahnung nur 30min eingelesen, nur als Info )
Ich habe eine .xml mit folgender Struktur:

Pic-Upload.de - xml.jpg

und möchte diese per XLST in CLS umwandeln.
Wenn ich das mache kommt das herraus:

Pic-Upload.de - cls.jpg

Sprich soweit stimmt alles, bis auf die Tatsache das nur die obere "set" Ausgelesen wurde.

Das Ergebnis in der CLS sollte ansich "Fr1 und Fr2" beinhalten.

Leider weiss ich nicht wie ich beide auslesen und in 1 Ausgabe packe.

Mein Sheet:

<?xml version="1.0" encoding="ISO-8859-1"?>

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


<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>name</th>
<th>set</th>
<th>color</th>
<th>manacost</th>
<th>type</th>
<th>pt</th>
<th>text</th>
</tr>
<xsl:for-each select="cockatrice_carddatabase/cards/card">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="set"/></td>
<td><xsl:value-of select="color"/></td>
<td><xsl:value-of select="manacost"/></td>
<td><xsl:value-of select="type"/></td>
<td><xsl:value-of select="pt"/></td>
<td><xsl:value-of select="text"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Vielen Dank schonmal

Nogules

nogules 19.02.2013 15:59

So ich hab nochmal probiert und eine Kleinigkeit bleibt noch.

Sheet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">

<tr>
<th>name</th>
<th>manacost</th>
<th>type</th>
<th>pt</th>
<th>text</th>
<th>color</th>
<th>set</th>
<th>set</th>
<th>set</th>
<th>set</th>
<th>set</th>
<th>set</th>
<th>set</th>
<th>set</th>
</tr>

<xsl:apply-templates select ="cockatrice_carddatabase/cards/card" />
</table>
</body>
</html>
</xsl:template>

<xsl:template match="card">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="manacost"/></td>
<td><xsl:value-of select="type"/></td>
<td><xsl:value-of select="pt"/></td>
<td><xsl:value-of select="text"/></td>
<xsl:apply-templates select ="color" />
<xsl:apply-templates select ="set" />
</tr>

</xsl:template>

<xsl:template match="set">
<td><xsl:value-of select="."/></td>
</xsl:template>
</xsl:stylesheet>


Nun passt nurnoch die Sache nicht, das manchmal kein Wert für "color" vorhanden ist und er somit den ersten "set" Wert ins "color" ausgibt.
Es sollte aber so sein, das er einfach wenn kein Wert für "color" gegeben ist, die Ausgabe in diesem Feld überspringt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25