|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: External XML Doc help
[ Karl Stubsjoen]
> <xsl:template match="myexternalxml">
> <xsl:copy-of select="document('myxmldoc.xml)//testint/test"/>
> </xsl:template>
>
>
> This works great... spits out all the xml in the document
> "myxmldoc.xml".
> However, I need to loop through a nodelist within this
> document and I'm not
> sure how to set up my templates to do this. How would I,
> lets say, loop
> through all test nodes in the following "myxmldoc" xml document:
>
> <testing>
> <test>1234</test>
> <test>1234</test>
> <test>1234</test>
> <test>1234</test>
> </testing>
>
document()/ gives you the root of your external xml file. You have to
do something that changes the context node to that document, then you
can do anything you like with it.
For example -
<xsl:template match="myexternalxml">
<xsl:for-each select="document('myxmldoc.xml')/testing">
<xsl:apply-templates select='test'/>
</xsl:for-each>
</xsl:template>
Here, xsl:for-each changes the context to the (one and only) "testing"
node in the external file.
Or -
<xsl:variable name='tests'
select="document('myxmldoc.xml')/testing/test"/>
<!-- then, within a template, -->
<xsl:apply-templates select='$tests'/>
....
<!-- outside the above template: -->
<xsl:template match='test'>
... do something here ...
</xsl:template>
Here, the xsl:apply-templates changes the context for you. If you could
have "test" elements in your main source document and you do not want
the same template to process "test" elements from both documents, then
use template modes -
<xsl:variable name='tests'
select="document('myxmldoc.xml')/testing/test"/>
<!-- then, within a template, -->
<xsl:apply-templates select='$tests' mode='externals'/>
....
<!-- outside the above template: -->
<xsl:template match='test' mode='externals'>
... do something here ...
</xsl:template>
Cheers,
Tom P
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
|

Cart








