Forum Doku Wiki Blog

Forumsarchiv 2007, März
XSLT / Element

archivierte Beiträge lesen

  1. (XSL) XSLT / Element von snowwhite, 06. 03. 2007, 10:28

XSLT / Element

Der folgende Beitrag wurde am 06. 03. 2007, 10:28 Uhr von snowwhite veröffentlicht.

Hallo,
ich habe ein Stylesheet geschrieben, um XML-Dateien in XML-Dateien umzuwandeln.
Bei der Transformation wird das tgroup-Element nicht erzeugt und ich verstehe nicht warum.

XSLT:
...
<xsl:element name="table">
<xsl:element name="tgroup">
<xsl:attribute name="cols"><xsl:text>2</xsl:text></xsl:attribute>
...

Oder
...
<table>
<tgroup cols="2">
...

Ich habe beide Varianten getestet und das tgroup-Elemente wird nie erzeugt. Ich erhalte auch keine Fehlermeldung und die Tabelle wird ohne Probleme erzeugt. Nur das trgroup-Elemten wird nicht erzeugt.

Vielleicht weiß jemand von Euch Rat.
Vielen Dank auf jeden Fall im voraus.
Viele Grüße
snowwhite

XSLT / Element

Der folgende Beitrag wurde am 06. 03. 2007, 13:33 Uhr von Thomas J.S. veröffentlicht.

Hallo,

> Bei der Transformation wird das tgroup-Element nicht erzeugt und ich verstehe nicht warum.

Du muss bitte etwas mehr von deinem Kode zeigen, sonst bleibt uns nur die  Antwort "wir auch nicht" übrigt.

Grüße
Thomas

XSLT / Element

Der folgende Beitrag wurde am 06. 03. 2007, 13:58 Uhr von snowwhite veröffentlicht.

Hallo Thomas,
anbei mehr von meinem Stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" media-type="text/xml"/>
<xsl:template match="/NoName">
<concept>
<xsl:choose>
<xsl:when test="//conbody/p">
<xsl:copy-of select="conbody/."/>
</xsl:when>
<xsl:when test="//conbody/table">
<xsl:element name="conbody">
<xsl:element name="table">
<xsl:element name="tgroup">
<xsl:attribute name="cols"><xsl:text>2</xsl:text></xsl:attribute>
<xsl:element name="thead">
<xsl:element name="row">
<xsl:element name="entry">
<xsl:value-of select="."/>
</xsl:element>
...       </xsl:element>
</xsl:element>
<xsl:element name="tbody">
...         </xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:when>
</xsl:choose>
</concept>
</xsl:template>
</xsl:stylesheet>

Vielen Dank auf jeden Fall schon einmal.
Viele Grüße
snowwhite

XSLT / Element

Der folgende Beitrag wurde am 06. 03. 2007, 17:34 Uhr von Thomas J.S. veröffentlicht.

Hallo,


> <xsl:choose>
> <xsl:when test="//conbody/p">
> <xsl:copy-of select="conbody/."/>
> </xsl:when>
> <xsl:when test="//conbody/table">
»
> </xsl:when>
> </xsl:choose>

Ich weiss zwar nicht, wie dein XML aussieht, aber du testest erst auf "//conbody/p" wenn das erfüllt ist (sprich _irgendwo_ in deinem XML ein "/conbody/p" existiert), ist der Test beendet. Das beduetet auch, dass der Prozessor nicht zum zweiten, dritten, etc. "when" geht.

Das eine Tabelle erzeugt wird, dürfte daran liegen, dass du in deinem ursprung-XML eine leere <table> stehen hast, was natürlich beim kopieren, mit kopiert wird.

Grüße
Thomas

XSLT / Element

Der folgende Beitrag wurde am 07. 03. 2007, 10:24 Uhr von snowwhite veröffentlicht.

Hallo Thomas,
vielen Dank für Deine Hilfe.
Das ist das Problem gewesen.

Viele Grüße
snowwhite

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4