Subject: Re: [xsl] Re: "if-condition-return something" idiom : is it possible in XSLT 1 ? From: "Kerry, Richard richard.kerry@xxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 16 Jun 2014 13:54:15 -0000 |
"If you're stuck with XSLT 1.0, this is going to be painful," Yes, I know .... "because XSLT 1.0 doesn't have regular expressions." Yes, I know .... "From what you're describing, this problem alone would make shifting to a 2.0 toolchain worthwhile." It's DocBook, which is XSLT 1, so I don't (think I) have a choice. "In general, I've found that per-weird-input-format date management is troubling, because there are so many and many of them overlap." It doesn't need to be a completely general solution. I have a selection of formats used in existing documents. They are all UK so I don't need to worry about UK/US number order. Expressed as (very) pseudo-REs they are something like: "dd? MMM(M{0,6}).? (cc)?yy" "MMM(M{0,6}).? (cc)?yy" "dd?/mm?/(cc)?yy" "mm?/(cc)?yy" (where d, m, c and y are numeric, M is alphabetic. Calculations are done to convert 2 digit years to 4 digit.) "It's worked better to define a year variable, which contains the preference-order (meaning, your preference for what test to believe the results of) attempt to extract a year value and with a default of "nope" so failure can be detected, and then the same with the month. The template then checks for failure and if it can, returns the assembled year-month pair composed in whatever format's appropriate." I'll have a look at this but I'm not sure it's that different to what I'm doing now, which is : 1. See if it matches "dd? MMM(M{0,6}).? (cc)?yy" or "MMM(M{0,6}).? (cc)?yy". If it doesn't, 2. see if it matches "dd?/mm?/(cc)?yy" or "mm?/(cc)?yy". And that's the first instance of the if-condition-return idiom. Uncertainly, Richard. ________________________________________ From: Graydon graydon@xxxxxxxxx [xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx] Sent: 16 June 2014 14:36 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Re: "if-condition-return something" idiom : is it possible in XSLT 1 ? On Mon, Jun 16, 2014 at 01:11:41PM -0000, Kerry, Richard richard.kerry@xxxxxxxx scripsit: > What I am doing is writing a callable template which will give dates > in the form yyyy-mm (y and m numeric) when given dates in a variety of > formats including those with strings for months (dd MMM yy, > dd/mm/yyyy, mm/yy, and many others). So the input is a single string > which needs to be tested against a number of different formats and > picked apart accordingly. Perhaps I can partly pick it apart then put > the parts into a node-set and get a template called on that. If you're stuck with XSLT 1.0, this is going to be painful, because XSLT 1.0 doesn't have regular expressions.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: "if-condition-return , Graydon graydon@xxxx | Thread | Re: [xsl] Re: "if-condition-return , Imsieke, Gerrit, le- |
Re: [xsl] Re: "if-condition-return , Graydon graydon@xxxx | Date | Re: [xsl] Re: "if-condition-return , Imsieke, Gerrit, le- |
Month |