[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Problem writing XSLT
Hi Jason, Thanks for your help.. Sorry for late reply as I was testing it.. Your XSL is working fine.. except a small thing I want which I mentioned in my requirement.. It is generating SQL as insert into table(LEVEL, TIME, TICKS, COMPONENT, SUBCOMPONENT, Datum, Datum) But I want the column name from this part of XML <ENTRY type="ProcEntry"> <Datum name="Adapter">SA</Datum> <Datum name="Method">ServiceabilityAgent</Datum> </ENTRY> as Adapter and Method and not as Datum! .. *If somebody can tell how can I get the name of the attribute*, I can try modifying the XSL.. Regards, Mukul --- Jason <estudio@xxxxxxxxx> wrote: > Pls try this > ------------------------------------------------------------------------ > ------------------------------------- > XML file: > <!-- edited with XMLSPY v5 rel. 2 U > (http://www.xmlspy.com) by Jason > (GRT) --> > <recordset> > <trace> > <LEVEL>FLOW</LEVEL> > <TIME>2003-05-06 09:57:59:9567238</TIME> > <TICKS>631878118799567238</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Method">Init</Datum> > </ENTRY> > </trace> > <trace> > <LEVEL>FLOW</LEVEL> > <TIME>2003-05-06 09:58:00:2830701</TIME> > <TICKS>631878118802830701</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Method">InitMgmt</Datum> > </ENTRY> > </trace> > <trace> > <LEVEL>FULL</LEVEL> > <TIME>2003-05-06 09:58:00:2830701</TIME> > <TICKS>631878118802830701</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Adapter">SA</Datum> > <Datum name="Method">ServiceabilityAgent</Datum> > </ENTRY> > </trace> > </recordset> > ------------------------------------------------------------------------ > ------------------------------------- > XSLT file: > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output method="xml" version="1.0" > encoding="UTF-8" > indent="yes"/> > <xsl:template match="/"> > <query> > <xsl:for-each select="//trace"> > <xsl:variable name="Columns"> > <xsl:call-template > name="getValues"> > <xsl:with-param name="V" > select="."/> > <xsl:with-param name="T" > select="'Columns'"/> > </xsl:call-template> > </xsl:variable> > <xsl:variable name="Values"> > <xsl:call-template > name="getValues"> > <xsl:with-param name="V" > select="."/> > <xsl:with-param name="T" > select="'Values'"/> > </xsl:call-template> > </xsl:variable> > <data> > insert into table > (<xsl:value-of select="$Columns"/>) > values > (<xsl:value-of select="$Values"/>) > </data> > </xsl:for-each> > </query> > </xsl:template> > <xsl:template name="getValues"> > <xsl:param name="V"/> > <xsl:param name="T"/> > <xsl:variable name="Values"> > <xsl:call-template name="getValueString"> > <xsl:with-param name="V" select="$V"/> > <xsl:with-param name="T" select="$T"/> > </xsl:call-template> > </xsl:variable> > <xsl:choose> > <xsl:when > test="normalize-space(substring(normalize-space(string($Values)),string- > length(normalize-space(string($Values))),1))=','"> > <xsl:value-of > select="substring(normalize-space(string($Values)),1,string-length(norma > lize-space(string($Values)))-1)"/> > </xsl:when> > <xsl:otherwise> > <xsl:value-of > select="normalize-space(substring(normalize-space(string($Values)),strin > g-length(normalize-space(string($Values))),1))"/> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > <xsl:template name="getValueString"> > <xsl:param name="V"/> > <xsl:param name="T"/> > <xsl:for-each select="$V/*[name(.)!='ENTRY']"> > <xsl:choose> > <xsl:when test="$T='Columns'"> > <xsl:value-of > select="name(.)"/>, > </xsl:when> > <xsl:otherwise> > '<xsl:value-of select="."/>', > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> > <xsl:for-each select="$V/*[name(.)='ENTRY']"> > <xsl:for-each select="Datum"> > <xsl:choose> > <xsl:when test="$T='Columns'"> > <xsl:value-of > select="name(.)"/>, > </xsl:when> > <xsl:otherwise> > '<xsl:value-of select="."/>', > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> > </xsl:for-each> > </xsl:template> > </xsl:stylesheet> > ------------------------------------------------------------------------ > ------------------------------------- > > it is running, but some place need be > optimized...,and you must think > about the type of the Fields: int, char...etc > > Jason@GRT > > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On > Behalf Of Mukul > Sent: 2003¦~6¤ë13¤é 10:02 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Problem writing XSLT > > Hello, > > I have an XML file in the form below. > > <trace> > <LEVEL>FLOW</LEVEL> > <TIME>2003-05-06 09:57:59:9567238</TIME> > <TICKS>631878118799567238</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Method">Init</Datum> > </ENTRY> > </trace> > > <trace> > <LEVEL>FLOW</LEVEL> > <TIME>2003-05-06 09:58:00:2830701</TIME> > <TICKS>631878118802830701</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Method">InitMgmt</Datum> > </ENTRY> > </trace> > > <trace> > <LEVEL>FULL</LEVEL> > <TIME>2003-05-06 09:58:00:2830701</TIME> > <TICKS>631878118802830701</TICKS> > <COMPONENT>NS</COMPONENT> > <SUBCOMPONENT>NS_SVC</SUBCOMPONENT> > <ENTRY type="ProcEntry"> > <Datum name="Adapter">SA</Datum> > <Datum name="Method">ServiceabilityAgent</Datum> > </ENTRY> > </trace> > > I need to make an XSL file in > such a way so that resulted o/p will be in the > following given below. > > > <Query> > <Data> insert into > table(LEVEL,TIME,TICKS,COMPONENT,SUBCOMPONENT,Method) > values('FLOW',2003-05-06 > > 09:58:00:2830701,631878118799567238,NS,SVC,Init)</Data> > <Data> insert into > > table(LEVEL,TIME,TICKS,COMPONENTS,SUBCOMPONENTS,Adapter,Method) > values('FLOW',2003-05-06 > 09:58:00:2830701,631878118799567238,NS,SVC,SA,ServiceabilityAgent)</Data > > > </Query> > > Pls note -- > 1 - each <trace> tag will generate a SQL in the > corresponding <data> tag > 2 - the value of columns of the SQL will come from > <LEVEL>, <TIME>, <TICKS>, <COMPONENT>, > <SUBCOMPONENT> > and attribute values of <Datum> tag for e.g. Adapter > and Method. The table name is a constant. > 3 - values of table columns will be corresponding > values of these tags > > I'll appreciate a response to the above problem.. > > Regards, > Mukul > > > > __________________________________ > Do you Yahoo!? > Yahoo! Calendar - Free online calendar with sync to > Outlook(TM). > http://calendar.yahoo.com > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|