xsl-list
[Top] [All Lists]

Re: Unable to get text() of node

2006-01-21 09:20:36
../text() returns a node-set with multiple text nodes (if present), but the xsl:value-of instruction will copy the string value of only the first (text) node from the nodeset. This first text node is however the white-space before the childname element and not the character data after the childname element nor the character data inside the childname. text() returns all significant character data sequences directly under the context node, not those of child nodes.

You might want to try xsl:copy-of instead of xsl:value-of. That will copy all text nodes in the nodeset to the result tree, instead of only the first.

Regards,
Geert

Liron wrote:

Hi Mukul,

Thank you very much for your reply and indeed you're right but I must ask for an explanation. I can see why text()[2] would get me the second text node for the <child> element but I tried to do the following after your reply:
<child>
  <childname/>
  name
</child>

1) The output was "name" which means that even though <childname> is empty, its content is still considered as text node (though empty). Is that the case?

2) How can I get the text of <child> without knowing his descendants?. Just the absolute text of it ("name" in this case). I thought that child:text() would do the trick but it didn't.

I'm really trying to understand this but a newbie is a newbie after all...

Thank you
Liron

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--