2008 4 Αυγ 2008

Ένα πρόβλημα με τη θέση () σε XSL ... ή μήπως είναι;

Είχα αυτό το πρόβλημα strage, δημιουργώντας παράλληλα ένα XSL σήμερα. Κοίταξε για απαντήσεις σε όλη την καθαρή, αλλά δεν μπορούσα να βρείτε οποιαδήποτε .... Στην πραγματικότητα υποθέτω! Εγώ ξέρω τι βαθούλωμα πρόβλημά μου ήταν, ναι, τι μπορώ να αναζητήσουμε;

Τέλος πάντων! Ακριβώς σε περίπτωση που έχετε αυτό ακριβώς το ίδιο πρόβλημα και εγώ με κάποιο τρόπο και με τη δύναμη της Δύναμης που κατάφερε να προσγειωθεί σε αυτή τη σελίδα ... Σας ευχαριστώ με τόνους ... Και αν έχετε λάθος εκφορτώνονται σε αυτή τη σελίδα για κάποιο περίεργο μοίρα και τυχαίνει να είναι ένας προγραμματιστής XSL, DO σημειώστε αυτό τώρα, ΓΙΑ ΤΟ ΜΕΛΛΟΝ αιτία, Αν κάποια μέρα, θα έχει να αντιμετωπίσει αυτό το ζήτημα, τότε η δύναμη θα μπορούσε να μην είναι μαζί σας.

Πρόβλημα δήλωση:
Έχω αυτό το XML, όπου υπάρχουν δύο κόμβοι με πολλά στοιχεία σε αυτό και τα στοιχεία μεταξύ αυτών των δύο κόμβοι έχουν ένα προς ένα αλληλογραφία. Στο παρακάτω παράδειγμα, κάθε αντικείμενο στον κόμβο <array name="PLAYURL" /> αφορά (αντίστοιχη θέση) σε ένα στοιχείο στον κόμβο <array name="SITENAME" />

<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>

Τώρα, έχω έναν βρόχο, όπου i βρόχο μέσω <array name="SITENAME">, και θέλω να πάρω το σχετικό στοιχείο (στην αντίστοιχη θέση) στην <array name="PLAYURL">,

Αυτό που θα προσπαθήσουμε να κάνουμε είναι κανονικά ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

ΣΥΓΝΩΜΗ! ΑΥΤΟ δεν θα λειτουργήσει ... Αχ! Surpised ...

Τώρα θα μπορούσε πιθανότατα να θέλουν να δοκιμάσουν, κάτι τέτοιο ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Και πάλι αυτό δεν θα λειτουργήσει ... Τώρα σας ξύσιμο το κεφάλι σας, προσπαθεί να επικοινωνήσει με όλους όσους νομίζετε ότι ξέρει κάποια XSL και θα μπορούσε να είναι οποιαδήποτε βοήθεια ... προσπαθείτε κάθε άλλη επιλογή ... και ακόμα δεν θα λειτουργήσει ... Καλά! Αυτός είναι τι συνέβη σε μένα atleast ...

DONT απελπισία! Δοκιμάστε αυτό

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Το Dont ΡΩΤΗΣΤΕ ΜΕ γιατί λειτουργεί. Αιτία i dont έχει το σωστό λόγο ... αν το κάνετε! Παρακαλώ μην ρίχνετε ένα σχόλιο. Θα μπορούσε να είναι πολύ χρήσιμα. Επίσης! αν έχετε καλύτερο τίτλο για αυτό το μήνυμα, κάντε πτώση μου μια γραμμή :)


2008 2 Αύγ 2008

Ρύθμιση του DOCTYPE σε XSL

Την περασμένη εβδομάδα είχα δημιουργήσει ένα progessive HTML / CSS διάταξη για έναν πελάτη, δοκιμαστεί στον IE6, IE7 και ύψους 3, φάνηκε απολύτως εντάξει ... ΜΕΧΡΙ! η διάταξη πήγε πιο κάτω στην manufacting κύκλο. Απέτυχε. Στοιχεία Διάταξη σελίδας μόλις πήγε σε όλη τη χώρα όταν η διάταξη HTML μετατράπηκε σε XSL και XML για να εφαρμοστεί ... Κρίμα!

Δεν μπορούσε να κοιμηθεί εντάξει τη διάρκεια του Σαββατοκύριακου, εν αναμονή της το πρωί της Δευτέρας, όταν θα έχω να διορθώσετε αυτό το SH **. Όμως, έχοντας τώρα μια μικρή πείρα επίσης στην αντιμετώπιση αυτού του είδους τις καταστάσεις (Παραξενιές Browser, εννοώ), ήξερα ότι είχε να κάνει με τίποτα άλλο, αλλά DOCTYPE .... και ήταν ...

Το Πρόβλημα:
Θέλεις έλεγχο πάνω από το DOCTYPE, αφού μετατροπή σας θα περιλαμβάνει μια προεπιλεγμένη ρητά DOCTYPE, και σας διάταξη θα είναι έξω για μια εκτίναξη.

Η Λύση:
XSLT προδιαγραφές παρέχει μεθόδους εξόδου για να ορίσετε ένα DOCTYPE την επιλογή του. Επίσης, για εμάς UI προγραμματιστές, τα θέματα ενδιαφέροντος θα είναι HTML μεθόδους παραγωγής και τις μεθόδους εξόδου XML .

Καλά! πριν έχετε βαρεθεί, εδώ είναι η λύση.

Για παράδειγμα, εάν είχε την ακόλουθη DOCTYPE στην έκδοση HTML σας:. -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Στη συνέχεια, στο XSL θα πρέπει να έχουν τα ακόλουθα: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

Τέλος, και! βεβαιωθείτε ότι δεν XSLT εξόδου σας υπακούει το DOCTYPE που έχετε επιλέξει.


2008 Μαΐου 2008

Συμπεριλάβετε XSL μέσα XSL

Αν XML / XSL Μεταμορφώνει είναι Domian σας, τότε υπάρχουν φορές που θέλουμε ενός κομματιού της Δυναμικής κωδικό που πρέπει να τεκμήριο της βιβλιοθήκης (που πρέπει να γίνουν επαναχρησιμοποιήσιμα). Τι εννοώ, ίσως θα μπορούσε να γίνει πιο σαφές με αυτό το σενάριο παράδειγμα.

Φανταστείτε ότι η δημιουργία ενός δικτυακού τόπου (και χρησιμοποιώντας XML, XSL transfroms φυσικά) και οι περισσότερες από τις σελίδες θα έχει Ενότητα Σχόλια. Καλά! τότε είτε να αντιγράψετε ή να επικολλήσετε αυτόν τον κώδικα σε κάθε σελίδα προτύπου (που Ι dont έχουν πει, αλλά κάνει συντήρηση και να επαναλάβει έναν εφιάλτη) ή ακόμα καλύτερα, μπορείτε να δημιουργήσετε ένα περιλαμβάνει το αρχείο που θα μπορούσε να τραβηχτεί όπου ποτέ θέλετε στη σελίδα σας ( α) ...
Έτσι Πώς δημιουργούμε ένα XSL περιλαμβάνει το αρχείο και να το συμπεριλάβει μέσα σε ένα άλλο αρχείο XSL; Εδώ είναι το πώς ...

Ακριβώς για να κάνει τα πράγματα σαφή ... εδώ είναι γρήγορη λίστα των αρχείων που θα δημιουργηθούν ... εδώ θα είμαστε, συμπεριλαμβανομένων πληροφοριών σχετικά με τα φρούτα και τα λαχανικά σε μια σελίδα που ονομάζεται μητρική τροφίμων.

1. food.xml - xml αρχείο δεδομένων επί των οποίων η μετατροπή θα πρέπει να εφαρμοστεί
2. food.xsl - κύριο αρχείο XSL, η οποία θα μετατρέψει food.xml μας
3. inc_fruits.xsl - XSL περιλαμβάνει αρχείο που θα καταστήσει τα φρούτα δεδομένα
4. inc_vegtables.xsl - XSL περιλαμβάνει αρχείο που θα καθιστούν τα δεδομένα vetetables

Ι dont ότι έχω εξηγήσει και πολύ, οι κωδικοί για τις παραπάνω στοιχεία, θα είναι αυτονόητα ...

FOOD.XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ Xsl: template>
</ Xsl: stylesheet>


INC_FRUITS.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Κατεβάστε όλα τα παραπάνω αρχεία εδώ (253 λήψεις)


2008 Απριλίου 2008

Εργασία με την XML Χαρακτηριστικά κόμβου σε XSLT

Αν χρησιμοποιείτε XML και XSL, τότε μπορεί να έρθει σε ένα χρόνο, όταν έχετε να παίξετε γύρω με τα χαρακτηριστικά και τις αξίες της XML κόμβων σε σας XSL. Είναι φορτία των περιοχών με μεγάλη ασθμαίνων πληροφορίες σχετικά με αυτό, αλλά καμία δεν βρήκα ήταν σύντομες και ακριβείς ... Αυτό δεν είναι XML / XSL φροντιστήριο, αλλά η προσπάθειά μου να βάζω-μαζί κάποια εξαπατήσει λίστα ...

Το δείγμα XML που θα εργάζεται με αυτό μοιάζει με ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Ας ξεκινήσουμε λοιπόν μετατροπή πάνω μας χρησιμοποιώντας XML, XSL

Παράδειγμα 1: Εμφάνιση αξία σε επιλεγμένο Ιδιότητα

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

HTML αποτέλεσμα θα μοιάζει με

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Παράδειγμα 2: βρόχου μέσω του εμφάνιση και όλα τα ονόματα XML Ιδιότητα και τις αξίες τους

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

HTML αποτέλεσμα θα μοιάζει με


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Κατεβάστε όλα τα παραπάνω αρχεία εδώ (245 λήψεις)



Παρακολουθήστε αυτό το χώρο, εγώ θα κρατήσει την ενημέρωση αυτή με νέα ευρήματα ...


NDK σπίτι | Εκφράζοντας IT | Εκφράζοντας Ουρανίσκος | Εκφράζοντας Penmenship | Εκφράζοντας δέος | εκφράζομαι