Subject: Re: Re: [xsl] Complex expression From: "Oleg Konovalov" <olegkon@xxxxxxxxx> Date: Mon, 13 Mar 2006 00:04:30 -0500 |
Charles/Florent, Maybe I should explain what I am trying to do and show how, so you can comment on whether what I am doing is correct. I am trying to upload Excel[2000/2003] file, process that info and put it in database. One of the very important fields is a Start_Date. It supposed to be of type "Date" and be in the format mm/dd/yyyy. If that was not a case (and invalid date format results in making type non-Date, that seems to be some Microsoft trick in Excel), up until recently we were just putting a fake date like 01/01/2000, but that had negative consequences, so now if the type of Start_Date is not a Date, we are supposed to instead insert that row into Error table (without the Start_Date). So here is my code: <xsl:template name='buildStatement'> <xsl:param name='row'/> <xsl:param name='table'/> <xsl:param name='notes'/> <sql:execute-query> <sql:query> <xsl:text>insert into </xsl:text> <xsl:value-of select='$table'/> <xsl:text> (</xsl:text> <xsl:for-each select='$row/sht:Cell'> <!--OK: MBR-233 don't insert Start_Date if not Date type - PUT condition here too? --> <xsl:if test='not(sht:Name[.="Facility_Start_Date"]/@ValueType="DATE")'> <!--OK: MBR-233 --> <xsl:value-of select='sht:Name'/> <xsl:text>, </xsl:text> </xsl:if> </xsl:for-each> <xsl:text>association_id, process_ind, last_update_user_id</xsl:text> <!--OK: MBR-233 don't insert Start_Date if not Date type --> <xsl:if test='not($row/sht:Cell/sht:Name[.="Facility_Start_Date"])'> <xsl:text>, facility_start_date</xsl:text> </xsl:if> <xsl:if test='$notes'> <xsl:text>, notes</xsl:text> </xsl:if> <xsl:text>) values (</xsl:text> <xsl:variable name='theRow' select='.'/> <xsl:for-each select='$row/sht:Cell'> <xsl:choose> <xsl:when test='@ValueType="DATE"'> <xsl:choose> <xsl:when test='contains(sht:Content, "9999") and contains(sht:Name, "Facility_End_Date")'> <xsl:text>null, </xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>to_date('</xsl:text> <xsl:value-of select='sht:Content'/> <xsl:text>', 'mm/dd/YYYY'), </xsl:text><!--Mon dd, YYYY--> </xsl:otherwise> </xsl:choose> </xsl:when> <!--xsl:when test='contains(sht:Name, "Start_Date")'--> <!--OK: MBR-233 Never insert 1/1/2000 or any fake date ! --> <!--xsl:text>'1-jan-2000', </xsl:text--> <!--/xsl:when--> On 3/6/06, Florent Georges <darkman_spam@xxxxxxxx> wrote: > cknell@xxxxxxxxxx wrote: > > > since every other node in the expression appears to be > > in a namespace (i.e., sht:), how is that the @ValueType > > isn't also in this namespace (e.g., sht:ValueType)? > > It's a common practice to not qualify attributes, letting them in the > null namespace. Think about your favorite XML languages. > > Regards, > > --drkm > > > > > > > > > > > > > > > > > > > > > > > > > ___________________________________________________________________________ > Nouveau : tiliphonez moins cher avec Yahoo! Messenger ! Dicouvez les tarifs exceptionnels pour appeler la France et l'international. > Tilichargez sur http://fr.messenger.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Re: [xsl] Complex expression, Florent Georges | Thread | Re: Re: [xsl] Complex expression, andrew welch |
Re: [xsl] Re: XSL:FO for .NET, Karl Stubsjoen | Date | AW: [xsl] Discussion regarding what, Huditsch, Roman \(LN |
Month |