This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Matchin elements in text nodes


Hi Mika,

Apart from using the wrong case ("ARTICLE" instead of "article"),
there's still another problem with the code of your template:

> <xsl:value-of select="text()"/>

will output only the first of the two text node children of the
"article" element in your sample xml source (you may get different
number of text nodes returned, depending on whether/how you use
xsl:strip-space and xsl:preserve-space in your stylesheet).

To get the text of all the text nodes, you may use something like this:

<xsl:for-each select="text()">
   <xsl:value-of select="."/>
</xsl:for-each>

Dimitre.



mika.borner@telia.fi wrote:

I still have problems.

My sourcefile looks like this:

...
<article>
 <article_id>123456</article_id>
 <main_heading>heading</main_heading>
 <article_date>article date</article_date>
This is the article text part 1
 <sub_heading>sub heading</sub_heading>
The article continues. This is part 2 of it
</article>
...

I tried to match the text node of the article using:

<xsl:template match="ARTICLE">
<html>
<body>
<p>
<xsl:value-of select="text()"/>
</p>
</body>
</html>
</xsl:template>


The "text()"-pattern doesn't return  anything.

Selecting with "." gives me also the unwanted article_id,main_heading
and the
article_date.

All I want to select is the direct text node under article (This is the
article
text part , The article continues. This is part 2 of it)

Can anybody help?





__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices. 
http://auctions.yahoo.com/

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]