Πρόβλημα με tables από xslt σε html

Συζητήσεις για XML, XSLT, RSS και παράγωγα της γενικότερης XML

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
aftos
Δημοσιεύσεις: 219
Εγγραφή: 08 Ιούλ 2004 13:57

Πρόβλημα με tables από xslt σε html

Δημοσίευση από aftos » 07 Μαρ 2006 18:16

Γεια σε όλους.
Έχω να κάνω μια απλή μετατροπή ενός αρχείου xml σε html με xslt. Το xml περιέχει profiles χρηστών και θα ήθελα να τα εμφανίσω σε html υπό μορφή tables, δύο ανά σελίδα. Δηλαδή να παίρνει για input το xml και στην έξοδο να μου δίνει html που θα περιέχει tables με τα στοιχεία των χρηστών.Για να είναι στην ίδια ευθεία οι δύο πίνακες, πρέπει να μπουν σε ένα μεγαλύτερο πίνακα σε δύο διαφορετικές στήλες. Κι εδώ είναι το πρόβλημα! Για να μπουν και οι δύο (κοινώς δύο profiles) σε στήλες ενός μεγαλύτερου πρέπει ο μεγαλύτερος να δημιουργείται από πριν. Αν όμως γίνει αυτό, δεν γίνεται να μπουν και τα δύο profiles σε ένα πίνακα! Αυτο που σκέφτηκα ήταν όταν κάνει loop στα profiles να παίρνει μόνο εκείνα που έχουν position() = 1, να δημιουργεί έναν πίνακα ("ο μεγάλος" ας τον πούμε) και μετά να κοιτάζει για το επόμενο profile, δηλαδή με position() = position()+1. Έλα όμως που δεν λειτουργει!

Αυτό που ακολουθεί είναι στην αρχή που ελέγχει την λίστα με τα profiles:
<xsl:for-each select="/pcList/profiles/profile">
<xsl:if test="position() mod 2 = 1">
<xsl:call-template name="pre-profile" />
</xsl:if>
</xsl:for-each>
Το pre-profile
<xsl:template name="pre-profile">
<table width="100%" border="1">
<tr>
<td width="48%">proto
<xsl:call-template name="profile" />
</td>
<td />
<td width="48%">
<xsl:if test="position() != last()">edo mesa
<xsl:call-template name="post-profile" />
</xsl:if>
</td>
</tr>
</table>
</xsl:template>
Και το post-profile
<xsl:template name="post-profile">
<xsl:for-each select="/pcList/profiles/profile[position()+1]">
<xsl:call-template name="profile" />
</xsl:for-each>
</xsl:template>

Και το template με το πως θα εμφανίζεται (απλά το γράφω)
<xsl:template name="profile">
<!-- το template -->
</xsl:template name="profile">
Αρκεί να βρω τι πρέπει να γράψω στο post-profile ή αν υπάρχει άλλος τρόπος
Thanx

ciao 8)

Άβαταρ μέλους
alkisg
Δημοσιεύσεις: 265
Εγγραφή: 03 Ιουν 2005 11:53
Τοποθεσία: Ιωάννινα
Επικοινωνία:

Πρόβλημα με tables από xslt σε html

Δημοσίευση από alkisg » 08 Μαρ 2006 18:15

Γιατί δεν κάνεις έναν μεγάλο πίνακα αντί για δύο ξεχωριστούς; Με μια κενή στήλη χωρίς border στη μέση, ώστε να φαίνεται σαν δύο πίνακες;

aftos
Δημοσιεύσεις: 219
Εγγραφή: 08 Ιούλ 2004 13:57

Πρόβλημα με tables από xslt σε html

Δημοσίευση από aftos » 09 Μαρ 2006 22:47

Το πρόβλημα δεν ήταν αυτό. Έτσι κι αλλιώς έκανα ένα μεγάλο πίνακα και μέσα σ'αυτόν άλλους δύο. Αυτό που ήθελα ήταν να παίρνω σαν αποτέλεσμα ένα html τύπου:
(αφήνω όλα τα αρχικά. Γράφω μόνο το πως θέλω τους πίνακες)

Κώδικας: Επιλογή όλων

<table>
   <tr>
      <td> εδώ το πρώτο profile <td>
      <td/>
      <td> εδώ το δεύτερο profile <td>
   </tr>
</table>
<table>
   <tr>
      <td> εδώ το τρίτο profile <td>
      <td/>
      <td> εδώ το τέταρτο profile <td>
   </tr>
</table>
κλπ.
Το βρήκα πάντως :D Ευχαριστώ για την προσοχή :)

ciao 8)

Απάντηση

Επιστροφή στο “XML, XSLT”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες