[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: multiple files to single file problem

Subject: RE: multiple files to single file problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 9 Dec 2008 13:36:20 -0000
RE:  multiple files to single file problem
> 	<xsl:template match="/" name="main">
> 		<xsl:element name="cover-body">

It's so much clearer if you use literal result elements: <cover-body>
instead of <xsl:element name="cover-body">.

> 			<xsl:for-each select="for $x in 
> collection('file:///D:/cover/sample
> xmls/pageall/else/nima?select=*.xml;recurse=yes;on-error=ignore')
> return $x">

The XPath expression "for $x in EXPR return $x" can always be rewritten
"EXPR". You just want

<xsl:for-each select="collection(....)">

> 				<xsl:variable name="a" 
> select="document(document-uri(/))"/>

That's equivalent to <xsl:variable name="a" select="."/>

> 		<xsl:element name="author">
> <xsl:value-of 
> select="$a/article/head/author-group/author/given-name"/>
> 							<xsl:text/>
> <xsl:value-of select="$a/article/head/author-group/author/surname"/>
> 						</xsl:element>
> 					</xsl:element>

xsl:value-of takes the selected nodes (all the given-names) and outputs
their values, space-separated. So you have asked for all the given-names,
space-separated, then all the surnames, space-separated. What you want is

  <xsl:for-each select="$a/article/head/author-group/author">
    <xsl:value-of select="given-name, surname"/>

perhaps with some added punctuation or markup.

Michael Kay

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.