|
Subject: [xsl] Displaying a combination of text and child nodes From: "Karen Dunstall" <kdunstall@xxxxxxxxxxxxxxx> Date: Tue, 8 Jul 2003 09:16:07 +1000 |
I'm having trouble listing a combination of text and child nodes via xsl.
My xml is generated automatically by a program called Doxygen. This section is a program listing. No matter what I do, I can't seem to get the child elements of <codeline> (mostly sp's), if I want the whole text line.
The xml is (I have just pulled out a few lines):
<?xml version="1.0" encoding="UTF-8"?>
<doxygen>
<compounddef>
<codelisting>
<programlisting>
<codeline lineno="1">
<highlight class="preprocessor">#pragma<sp/>warning<sp/>(disable<sp/>:<sp/>4786)<sp/>//<sp/>Disable<sp/>STL<sp/>warning<sp/>spam</highlight>
</codeline>
<codeline lineno="2">
<highlight class="preprocessor"/>
<highlight class="normal"/>
</codeline>
<codeline lineno="3">
<highlight class="normal"/>
<highlight class="preprocessor">#include<sp/><iomanip></highlight>
<highlight class="normal"/>
</codeline>
<codeline lineno="8">
<highlight class="normal"/>
<highlight class="preprocessor">#include<sp/>"<ref refid="OurPrograms_8h" kindref="compound">OurPrograms.h</ref>"</highlight>
<highlight class="normal"/>
</codeline>
<codeline lineno="9">
<highlight class="normal"/>
<highlight class="preprocessor">#include<sp/>"GMFSDate/GMFSDate.h"</highlight>
<highlight class="normal"/>
</codeline>
<codeline lineno="10">
<highlight class="normal"/>
<highlight class="preprocessor">#include<sp/>"<ref refid="DB_Conn_8hpp" kindref="compound">SQLSVRDB/DB_Conn.hpp</ref>"</highlight>
<highlight class="normal"/>
</codeline>
<codeline lineno="34" refid="classOurCompany_1s0" refkind="member">
<highlight class="normal"/>
<highlight class="keyword">const</highlight>
<highlight class="normal">
<sp/>
<ref refid="classOurCompany_1w0" kindref="member">OurCompany::ErrCode</ref>
<sp/>
<ref refid="classOurCompany_1s0" kindref="member">OurCompany::ERR_NONE</ref>
<sp/>=<sp/>0;</highlight>
</codeline>
<codeline lineno="35" refid="classOurCompany_1s1" refkind="member">
<highlight class="normal"/>
<highlight class="keyword">const</highlight>
<highlight class="normal">
<sp/>
<ref refid="classOurCompany_1w0" kindref="member">OurCompany::ErrCode</ref>
<sp/>
<ref refid="classOurCompany_1s1" kindref="member">OurCompany::ERR_BBX</ref>
<sp/>=<sp/>1;</highlight>
</codeline>
</programlisting>
</codelisting>
</compounddef>
</doxygen>
The xsl I am using is:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Code listing for a nominated function. -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>A function</title>
<link rel="stylesheet" href="doxygen.css" type="text/css"/>
</head>
<body>
<table>
<xsl:for-each select="doxygen/compounddef/programlisting/codeline">
<tr>
<td>
<xsl:value-of select="@lineno"/>
</td>
<td>
<xsl:for-each select="highlight">
<span class="<xsl:value-of select="@class"/>>
<!-- Doesn't seem to matter what I do here, I can get the whole text, ignoring sp elements, or I can get the first sp element, -->
<!-- or I can get the first text element only, depending on what I do -->
<!-- I have tried xsl:for-each loops, I've tried matching templates, but I still can't seem to get it to work. -->
<xsl:for-each select="text()">
<xsl:value-of select="."/>
</xsl:for-each>
</span>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Can anyone tell me how I can access each child element, and still get all of the text?
As you can probably see from the question, I wouldn't call myself an experienced xsl user yet.
Many thanks
Karen
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] ASP and MSXML AddParamete, cknell | Thread | RE: [xsl] Displaying a combination , Lars Huttar |
| Is XML a Language? (was RE: [xsl] X, Bill Cohagan | Date | RE: [xsl] Displaying a combination , Lars Huttar |
| Month |