RE: [xsl] badly need xsl help

Subject: RE: [xsl] badly need xsl help
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 13 Oct 2003 17:46:57 +0100
>   I posted this question here before. 
> But I didn't get any 
> luck. So trying again with some more details.

You clearly aren't listening to advice. Didn't you see the post a few
days ago about choosing good subject lines that will make people look at
your questions?


> 
> In this example, I can't access individual  nodes inside 
> RegOptions in the script.

I assume you mean RegionalOptions.
> 
> xml:
> 
> <data xmlns="urn:schemas.abcd-com:layers">
> 	<Rpt_Inven xmlns="urn:schemas.abcd-com:RepInven" />
> 	<RegionalOptions xmlns="urn:schemas.abcd-com:Static">
> 		<Currency>
> 			<DecimalSymbol>.</DecimalSymbol>
> 			<GroupingSymbol>,</GroupingSymbol>
> 			<DigitGrouping>2</DigitGrouping>
> 		</Currency>
> 		<Locale>1033</Locale>
> 		<Date>
> 			<Calendar>
> 			<TwoDigitYear>79</TwoDigitYear>
> 			</Calendar>
> 			<Separator>-</Separator>
> 			<ShortFormat>3</ShortFormat>
> 		</Date>
> 	</RegionalOptions>
> </data>
> 
> 
> xsl :
> 
> <xsl:stylesheet version="1.0" xmlns="" 
> xmlns:lay="urn:schemas.abcd-com:layers" 
> xmlns:rep="urn:schemas.abcd-com:RepInven" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
> xmlns:scrdt="urn:schemas.abcd-com:datatypes" 
> xmlns:stat="urn:schemas.abcd-com:Static">
> 	<xsl:output method="xml" encoding="UTF-8"/>
> 	<xsl:template match="lay:data">
> 		<_Ctrl>
> 			<xsl:call-template name="callInit">
> 				<xsl:with-param 
> name="regOptNode" select="stat:RegionalOptions"/>
> 			</xsl:call-template>
>   		</_Ctrl>
> 	</xsl:template>
> 	 <xsl:template name="callInit">
> 		<xsl:param name="regOptNode"/>
> 		<_Item>
> 			<xsl:value-of select="scrdt:init($regOptNode)"/>
> 		</_Item>
> 	</xsl:template>
> 	<msxsl:script language="JScript" 
> implements-prefix="scrdt"><![CDATA[
> 
> function init(RegOpts)
> {
> 	if( !RegOpts.length) return "length 0";
> 	for( i = 0; i < RegOpts.length; i++ ) {
> 		xDate.init(RegOpts(i));
> 		xNumber.init(RegOpts(i));
> 		var val = RegOpts(i).selectSingleNode("Currency");

You need to do something to tell MSXML what namespace the Currency
element is in (it is in urn:schemas.abcd-com:Static). I don't remember
enough the Microsoft APIs to tell you how to do this, though.

Michael Kay

 


> //		var val = RegOpts(i).firstChild;
> 		
> 		if(val!=null)
> 			return val.xml;
> 	}
> 	return "End";
> }
> 	]]></msxsl:script>
> 
> </xsl:stylesheet>
> 
>     With this xml and xsl, I am expecting my out some thing like
> 
> <_Ctrl xmlns="" xmlns:lay="urn:schemas.abcd-com:layers" 
> xmlns:rep="urn:schemas.abcd-com:RepInven" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
> xmlns:scrdt="urn:schemas.abcd-com:datatypes" 
> xmlns:stat="urn:schemas.abcd-com:Static">
> 	<_Item>
> 		&lt;DecimalSymbol&gt;.&lt;/DecimalSymbol&gt;
> 		&lt;GroupingSymbol&gt;,&lt;/GroupingSymbol&gt;
> 		&lt;DigitGrouping&gt;2&lt;/DigitGrouping&gt;
> 	</_Item>
> </_Ctrl>
> 
>    But it is always producing something like 
> 
>    <_Ctrl xmlns="" xmlns:lay="urn:schemas.abcd-com:layers" 
> xmlns:rep="urn:schemas.abcd-com:RepInven" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
> xmlns:scrdt="urn:schemas.abcd-com:datatypes" 
> xmlns:stat="urn:schemas.abcd-com:Static">
> 	<_Item>
> 		End
> 	</_Item>
> </_Ctrl>
> 
> 
>       I think this b'cos I am not able to get access to the 
> <Currency/> node in the script function. And whenever I say 
> RegOpts(i).firstChild , I am getting the result I want. 
> 
> Any ideas about. I am very desperate for this.
> 
> thanks,
> 
> ~Mur
> 
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread