XSLT mit Xalan-j
Ingo
- xsl
0 Thomas J.S.0 Ingo
0 MudGuard
Hallo,
hat jemand eine Ahnung, wie ich das Outputformat mit Xalan-j festlegen kann?
Wenn ich dieses durch den Prozessor jage,
<xsl:value-of select="normalize-space(substring-before(@visibility,'_'))"/>
<xsl:value-of select="string(' ')"/>
<xsl:variable name="changeable" select="@isChangeable"/>
<xsl:variable name="typeId" select="./TypedElement.type/PrimitiveType/@xmi.idref"/>
<xsl:variable name="type" select="key('primitivetypelist',$typeId)"/>
<xsl:if test="$changeable='false'">
final<xsl:value-of select="string(' ')"/>
</xsl:if>
<xsl:value-of select="normalize-space($type/@name)"/>
<xsl:value-of select="string(' ')"/>
<xsl:value-of select="normalize-space(@name)"/>;
dann bekomme ich
private
final Long Time;
public String Name;
public String Steps;
public String Description;
public String Ingredients;
Es sollte eigentlich so aussehen:
private final Long Time;
public String Name;
public String Steps;
public String Description;
public String Ingredients;
Wie kann ich also das Einrückverhalten und den Zeilenumbruch kontrollieren, ohne alles in eine Zeile in das XSL Dokument zu schreiben.
Grüße und vielen Dank im Voraus,
Ingo
Hallo,
hat jemand eine Ahnung, wie ich das Outputformat mit Xalan-j festlegen kann?
Verwendest du bereits <xsl:output ..... /> ?
Es sollte eigentlich so aussehen:
private final Long Time;
public String Name;
Wie kann ich also das Einrückverhalten und den Zeilenumbruch kontrollieren, ohne alles in eine Zeile in das XSL Dokument zu schreiben.
Du könntest mit concat() arbeiten
<xsl:value-of select="normalize-space(concat(substring-before(@visibility,'_'), ' ')"/>
alternativ kannst du versuchen für den template ein xml:space="default" als Attribut zuzuweisen.
Grüße
Thomas
Hi und danke für die Antwort
Verwendest du bereits <xsl:output ..... /> ?
Ja, habe alle Attribute ausprobiert. Ich verwende jetzt nur
method="text"
Ich benutze absolut keine xml und html tags in den Output files.
Grüße,
Ingo
Hallo,
Verwendest du bereits <xsl:output ..... /> ?
Ja, habe alle Attribute ausprobiert. Ich verwende jetzt nur
method="text"
Dann bleibt dir nichts anderes übrig, als die XSL-Anweisungen die eine Zeile produzieren (sollen) auch in einer Zeile zu schreiben.
Grüße
Thomas
Hi,
<xsl:if test="$changeable='false'">
final<xsl:value-of select="string(' ')"/>
</xsl:if>
Du hast hier einen Zeilenumbruch und eine Einrückung im auszugebenden Text.
private
final Long Time;
Warum sollte dann hier kein Zeilenumbruch und keine Einrückung vorhanden sein?
<xsl:if test="$changeable='false'">final<xsl:value-of select="string(' ')"/></xsl:if>
sollte m.E. das Problem lösen (getestet hab ich jetzt nicht).
cu,
Andreas