XSL Stylesheet, Tags innerhalb von Tags

woellner

Grünschnabel
Hallo,

Ich erstelle ein XSL-Stylesheet zur Darstellung der XML-Dokumentation aus C#.

Nun kann es vorkommen, daß z.B. in <example> das Tag <code> vorkommt.
Wie kann ich das darstellen, verwende ich im template example select="." wird der Codeteil ja immer mitausgegeben.

Danke für die Hilfe,
MfG
DW
 

Trice

Mitglied
?

Schick dochmal den Quelltext rueber ! Bei mir gehts eigentlich so.
______________________________________________________

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>

<document>
<data>Sollte doch eigentlich <code>gehen</code></data>
</document>

______________________________________________________

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<head>
</head>
<body>
<div align="center"><xsl:apply-templates /></div>
</body>
</html>
</xsl:template>

<xsl:template match="data">
<p><xsl:value-of select="." /></p>
</xsl:template>

<xsl:template match="code">
<xsl:value-of select="." />
</xsl:template>

</xsl:stylesheet>
 

woellner

Grünschnabel
Hi,

Hier der XML-Teil:
Code:
<member name="M:ReportViewer.Form1.ShowReport">
            <summary>
            Öffnen eines Open-File-Dialoges
            </summary>
            <remarks>
            <para>Es wird ein Open-File Dialog geöffnet,
            nach Auswahl der Datei wird diese Angezeigt.</para>
            <para>Alle Abfragen zum aktuellen Report stammen aus dem Report selbst,
            es werden vom Programm keinerlei Parameter mitgegeben.</para>
            <example>
            Hier ein Beispiel:
            <code>fdReport.FileName="";</code>
            <code>fdReport.Title="Bitte Report auswählen ...";</code>
            <code>fdReport.Filter="Crystal Report (*.rpt)|*.rpt";</code>
            <code>fdReport.ShowDialog();</code>
            <code>fdReport.CheckFileExists=true;</code>
            Dann sollte alles laufen.
            </example>
            </remarks>
        </member>
XSL-Ausschnitt:
Code:
<xsl:template match="remarks">
<TABLE border="0" width="75%">
	<TR>
		<TD width="25"></TD>
		<TD bgcolor="gray">
			<span style="font-family: arial, sans-serif; background-color: gray; color: white">
				<xsl:for-each select="para" /><xsl:apply-templates select="para" />
				<xsl:apply-templates select="example" />
				<xsl:apply-templates select="see"/>
			</span>
		</TD>
	</TR>
</TABLE>
</xsl:template>
<xsl:template match="example">
	<div style="font-family: arial, sans-serif; text-decoration: underline; background-color: gray; color: white/>
	<xsl:for-each select="example/code" /><xsl:apply-templates select="code" />
</xsl:template>
<xsl:template match="code">
	<div style="font-family: courier; background-color: gray; color: white">
		<xsl:value-of select="."/>
	</div>
</xsl:template>

Nur, wenn ich im Template Example sage: <xsl:value-of select="."/> wird ja auch der Bereich Code mit ausgegeben. Und es ist halt möglich, daß vor und nach dem Code halt noch was anderes kommt.
 

Neue Beiträge