xsl-list
[Top] [All Lists]

Problem using document function in a template rule while combinin g two XML files?

2003-10-30 21:07:00
Hi,
I wanted to make a template rule corresponding to apply-templates which
makes use of document() function.
When I try to apply this style sheet on the XML, browser throws an error. Am
I doing somethin wrong or ... ?
Is there any other method to achieve the same ? Sample code is:

(Test1.xml)
        <?xml-stylesheet type="text/xsl" href="Test.xsl"?>
        <students>
                <student>
                        <name>Naren</name>
                        <age>28</age>
                </student>
                <student>
                        <name>Vineet</name>
                        <age>25</age>
                </student>
        </students>

(Test2.xml)
        <students>
                <student>
                        <qualification>Graduate</qualification>
                </student>
                <student>
                        <qualification>Post Graduate</qualification>
                </student>
        </students>

(Test.xsl)
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
                <xsl:output method="html" />
        
                <xsl:variable name="DOC2" select="document(Test2.xml)" />
                <xsl:template match="/">
                        <html>
                                <head>
                                        <title>Test</title>
                                </head>
                                <body>
                                        <xsl:apply-templates
select="students" />
                                </body>
                        </html>
                </xsl:template>
        
                <xsl:template match="students">
                        <xsl:for-each select="student">
                                <xsl:value-of select="name" />&#160;
                                <xsl:value-of select="age" /><br/>
                                <xsl:apply-templates
select="$DOC2/students/student/qualification" />
                        </xsl:for-each>
                </xsl:template>
        
             <!-- MSXML throws error at following point that it does not
allow variables at this position.
                Even if I make use of document function directly instead of
taking a variable, it still throws an error.
                -->
                <xsl:template match="$DOC2/students/student/qualification">
                        <span>NAREN</span>
                </xsl:template>
        </xsl:stylesheet> 

Any help would be great!
~Naren

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



<Prev in Thread] Current Thread [Next in Thread>