[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
2006/8/7, David Carlisle <davidc@xxxxxxxxx>:
Re: [xsl] Use of separator
Subject: Re: [xsl] Use of separator From: "Georg Hohmann" <georg.hohmann@xxxxxxxxx> Date: Tue, 8 Aug 2006 09:34:18 +0200 |
Hello, please excuse me for not giving a complete example of the source file. Here is my second attempt ... I made a little testbed which consists of one source file and two xslt stylesheets. Here is the source:
<?xml version="1.0" encoding="UTF-8"?> <root> <wrapper> <node1>Text1</node1> <node2>Text2</node2> <node3>Text3</node3> </wrapper> <wrapper> <node1>Text1</node1> <node2>Text2</node2> <node3>Text3</node3> </wrapper> <wrapper> <node1>Text1</node1> <node2>Text2</node2> <node3>Text3</node3> </wrapper> </root>
Stylesheet 1: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.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="wrapper"> <helloWorld> <xsl:value-of select="element()/text()" separator=", "/> </helloWorld> </xsl:template> </xsl:stylesheet>
Output of Stylesheet 1: <?xml version="1.0" encoding="UTF-8"?> <helloWorld>Text1Text2Text3</helloWorld> <helloWorld>Text1Text2Text3</helloWorld> <helloWorld>Text1Text2Text3</helloWorld>
Stylesheet 2: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.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="wrapper"> <helloWorld> <xsl:value-of select="*" separator=", "/> </helloWorld> </xsl:template> </xsl:stylesheet>
Output of Stylesheet 2: <?xml version="1.0" encoding="UTF-8"?> <helloWorld>Text1, Text2, Text3</helloWorld> <helloWorld>Text1, Text2, Text3</helloWorld> <helloWorld>Text1, Text2, Text3</helloWorld>
Although the output files are no valid xml due to the lack of a root element they show the different use of the separator.
Regards, Georg
2006/8/7, David Carlisle <davidc@xxxxxxxxx>:
you didn't show your input so i'll have to guess,
if the doc is
<x> <a>one<!-- here -->two</a> <a>three</a> <a>four</a> </x>
and the current node is x then
element()/text() will select four text nodes with values "one" "two" "three" "four" so <xsl:value-of select="element()/text()" separator=", "/> will generate one text node with value "one, two, three, four"
* will select three element nodes, each with name a and with string values "onetwo" "three" "four" so
<xsl:value-of select="*" separator=", "/> will generate one text node with string value "onetwo", "three", "four"
> Now i wonder why the result of the first expression contains no > separator while the other one does. Any explanations? presumably it selected a sequence of length 1, but without seeing the input it's hard to say.
David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Use of separator, andrew welch | Thread | Re: [xsl] Use of separator, David Carlisle |
RE: [xsl] document() and public ID, Colin Adams | Date | Re: [xsl] get the current xml file , Frank Marent |
Month |