Subject: RE: [xsl] xsl:analyze-string From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 2 Aug 2004 09:46:31 +0100 |
I think that rather than using xsl:analyze-string to analyze the value of regex-group(5), I would use a sequence of calls on matches(): <xsl:variable name="fname" select="regex-group(5)"/> <xsl:choose> <xsl:when test="matches($fname, 'b$')">... <xsl:when test="matches($fname, 'm$')">... <xsl:otherwise>... Michael Kay > -----Original Message----- > From: David.Pawson@xxxxxxxxxxx [mailto:David.Pawson@xxxxxxxxxxx] > Sent: 02 August 2004 08:33 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] xsl:analyze-string > > Problem: > > I have xml looking like > <record>19/08/1992 09:08 111938 500014.08b</record> > > Of interest is the last field, the dos file name. > Its general form is > nnnnnn.nnA n=int, A =A-Z. > > I can use the analyze-string to parse this (mostly), > I'm missing a processing model to take care of exceptions. > > E.g. xxx.01a is a particular (valid form). > On occasions someone has misnamed the file xxx.ola using o instead > of 0 letter l instead of 1. > > I'm missing the nest of cases: My code is shown below. > What's the logic to posively select all the known/valid combinations > are exhausted? > I want to add some form of error markup to identify these rogues. > > Valid options include, for regex-group(5) > > nnb > nnm > nnl > nnf > lab > > TIA, regards DaveP > > > > <xsl:template match="record"> > <xsl:analyze-string select="." flags="i" regex= > "([0-9]+/[0-9]+/[0-9]+) +([0-9]+:[0-9]+) +([0-9]+) > +([0-9]+)\.([0-9a-z]+)" > > <xsl:matching-substring> > <file> > <nm><xsl:value-of select="regex-group(4)"/></nm> > <ext><xsl:value-of select="regex-group(5)"/></ext> > <xsl:analyze-string select="regex-group(5)" flags="i" regex= > "([0-9]{{1,2}})([a-z])"> > <xsl:matching-substring> > <vol><xsl:value-of select="regex-group(1)"/></vol> > <type> > <xsl:choose> > <xsl:when test="regex-group(2) = 'b' or > regex-group(2) = > 'B'"> > <xsl:text>braille</xsl:text> > </xsl:when> > <xsl:when test="regex-group(2) = 'm' or > regex-group(2) = > 'M'"> > <xsl:text>Moon</xsl:text> > </xsl:when> > <xsl:when test="regex-group(2) = 'l' or > regex-group(2) = > 'L'"> > <xsl:text>ATOD</xsl:text> > </xsl:when> > <xsl:when test="regex-group(2) = 'f' or > regex-group(2) = > 'F'"> > <xsl:text>DiskFile</xsl:text> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="."/> > </xsl:otherwise> > </xsl:choose> > </type> > </xsl:matching-substring> > </xsl:analyze-string> > > <xsl:if test="regex-group(5)='lab'"> > <type>label</type> > </xsl:if> > </file> > </xsl:matching-substring> > </xsl:analyze-string> > </xsl:template> > > > Regards DaveP. > > **** snip here ***** > > -- > DISCLAIMER: > > NOTICE: The information contained in this email and any > attachments is > confidential and may be privileged. If you are not the intended > recipient you should not use, disclose, distribute or copy any of the > content of it or of any attachment; you are requested to notify the > sender immediately of your receipt of the email and then to delete it > and any attachments from your system. > > RNIB endeavours to ensure that emails and any attachments > generated by > its staff are free from viruses or other contaminants. However, it > cannot accept any responsibility for any such which are transmitted. > We therefore recommend you scan all attachments. > > Please note that the statements and views expressed in this email and > any attachments are those of the author and do not > necessarily represent > those of RNIB. > > RNIB Registered Charity Number: 226227 > > Website: http://www.rnib.org.uk
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:analyze-string, M. David Peterson | Thread | RE: [xsl] xsl:analyze-string, David . Pawson |
Re: [xsl] xsl:analyze-string, M. David Peterson | Date | [xsl] how to take table data?, Venkatapathi Indukur |
Month |