Jul 16, 2012

Padding string σε XSLT στο Oracle SOA Suite

Δουλεύοντας σε ένα XSL transformation στο Oracle SOA Suite, με έκπληξη διαπίστωσα πως μια από τις (πιο σημαντικές και κοινόχρηστες) συναρτήσεις που απουσιάζουν είναι αυτή του padding (γεμίσματος) ενός string με χαρακτήρες. Χρειάστηκε λοιπόν να καταφύγω σε μια σύνθεση συναρτήσεων concat(), substring() και string-length() για να το καταφέρω. Σε γενικές γραμμές, για το left padding ενός string ο τύπος είναι κάπως ως εξής:

substring(concat("padding_character_string",data_variable_xpath),(string-length(data_variable_xpath) + 1.0))

Για παράδειγμα, σε περίπτωση που θέλουμε να γεμίσουμε από τα αριστερά (left padding) ένα string με μηδενικά, με μέγιστο μήκος τους 6 χαρακτήρες:


substring(concat("000000",/ns0:payload/ns0:SERIAL_NO),(string-length(/ns0:payload/ns0:SERIAL_NO) + 1.0))


Αντίστοιχα στην περίπτωση του right padding, η σταθερή μας συμβολοσειρά (οι padding χαρακτήρες) θα ήταν το δεύτερο όρισμα της concat().

No comments: