Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12201

How to loop through child nodes in xslt, requesting specific output depending on node type

$
0
0

I have an xml input like this :

<doc><article><text><p>                paragraph 1</p><p>                paragraph 2</p><inter>                inter 1</inter><p>                paragraph 3</p><p>                paragraph 4</p><inter>                inter 2</inter><p>                paragraph 5</p></text></article></doc>

I would need an output like this :

<doc><article><text>            [TEXT]            paragraph 1            paragraph 2            [INTER]            inter 1            paragraph 3            paragraph 4            [INTER]            inter 2            paragraph 5</text></article></doc>

So I tried this xsl code :

<xsl:template match="/doc"><doc><article><text><xsl:text>[TEXT]&#xa;</xsl:text><xsl:for-each select="article/texte"><xsl:choose><xsl:when test="p"><xsl:value-of select="p"/><xsl:text>&#xa;</xsl:text></xsl:when><xsl:when test="intertitre"><xsl:text>[INTER]&#xa;</xsl:text><xsl:value-of select="intertitre"/><xsl:text>&#xa;</xsl:text></xsl:when></xsl:choose></xsl:for-each></text></article></doc></xsl:template>

Not working… It seems the script just stops after the first "p" child node so I just get this output :

<doc><article><text>            [TEXT]            paragraph 1</text></article></doc>

What would you suggest ? The "choose… when" statement seemed OK to do the job, but it may not be, or I just missed something… (I'm quite new to xslt…)


Viewing all articles
Browse latest Browse all 12201

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>