Hallo @all,
ich steh vor einem kleinen Problem. Ich möchte aus einer xml ein svg erstellen. Von der Sache her kein Problem. Ich lese aus dem Quellfile verschiedene Texte aus und bearbeite diese in einer Art Zählschleife (rekursiv). Diese Texte werden nun in ein Rechteck geschrieben. Dies geschieht alles in einem extra Template.
In einem anderen Template rufe ich diese "Zählschleife" auf. Das Problem liegt jetzt darin, dass wenn ich die folgende Zeile
folgendermaßen einfüge:
bekomme ich als ausgabe folgendes (nur ein Ausschnitt):
hier müsste nun ein namespace (rot) angegeben werden. Wieso ist das nun nötig? Versteh ich nicht. Und wie kann ich in meiner XSL angeben, dass er den namespace dort automatisch zufügt?
ich steh vor einem kleinen Problem. Ich möchte aus einer xml ein svg erstellen. Von der Sache her kein Problem. Ich lese aus dem Quellfile verschiedene Texte aus und bearbeite diese in einer Art Zählschleife (rekursiv). Diese Texte werden nun in ein Rechteck geschrieben. Dies geschieht alles in einem extra Template.
In einem anderen Template rufe ich diese "Zählschleife" auf. Das Problem liegt jetzt darin, dass wenn ich die folgende Zeile
Code:
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 1000 650">
Code:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="EB.css" type="text/css"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" doctype-public="-//W3C//DTD SVG 1.0//EN" doctype-system="http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" encoding="ISO-8859-1" media-type="image/svg+xml" version="1.0" indent="yes"/> <xsl:template match="/"> <xsl:processing-instruction name="xml-stylesheet">href="EB.css" type="text/css" </xsl:processing-instruction> <svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 1000 650"> <xsl:call-template name="fori"> <xsl:with-param name="myCounter" select="0"/> </xsl:call-template> </svg> </xsl:template> <xsl:template name="fori"> <xsl:param name="myCounter"/> <!-- hochzaehlen für naechsten durchlauf --> <xsl:variable name="mbCounter" select="$myCounter + 1"/> <!-- ausgabe --> <xsl:for-each select="ODX/VEHICLE-INFO-SPEC/VEHICLE-INFORMATIONS/VEHICLE-INFORMATION/LOGICAL-LINKS"> <xsl:choose> <xsl:when test="LOGICAL-LINK[position()=$mbCounter]/LONG-NAME[contains(.,'Logical Link')] and LOGICAL-LINK[position()=$mbCounter]/LONG-NAME[contains(.,'KWP2000CAN20')]"> <xsl:variable name="fulltext" select="LOGICAL-LINK[position()=$mbCounter]/LONG-NAME"/> <xsl:variable name="ohneLL" select="substring-after($fulltext,'Logical Link')"/> <xsl:variable name="ohneKWP" select="substring-before($ohneLL,'KWP2000CAN20')"/> <xsl:variable name="eins" select="substring($ohneKWP,1,11)"/> <xsl:variable name="zwei" select="substring($ohneKWP, 12,11)"/> <xsl:variable name="drei" select="substring($ohneKWP, 23)"/> <g id="Gateway" class="gateway" transform="translate(29 162)"> <g id="Gateway.graphics"> <rect x="0" y="0" width="80" height="60"/> <line x1="0" y1="60" x2="80" y2="0"/> </g> <g id="Gateway.name"> <text id="GATEWAY.Gateway.name.3" x="0" y="0" pointer-events="none" visibility="visible" transform="translate(40 19)"> <tspan x="0" dy="0" text-anchor="middle"><xsl:value-of select="$eins"/></tspan> <tspan x="0" dy="15" text-anchor="middle"><xsl:value-of select="$zwei"/></tspan> <tspan x="0" dy="15" text-anchor="middle"><xsl:value-of select="$drei"/></tspan> </text> </g> </g> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:if test="$mbCounter < 50"><!-- bis 50--> <!-- naechster(leider rekursiver) aufruf mit $myCounter+1 --> <xsl:call-template name="fori"> <xsl:with-param name="myCounter" select="$mbCounter"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>
Code:
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 1000 650">
<g xmlns="" id="Gateway" class="gateway" transform="translate(29 162)">
<g xmlns="" id="Gateway.graphics">
<rect xmlns="" x="0" y="0" width="80" height="60"/>
<line xmlns="" x1="0" y1="60" x2="80" y2="0"/>
</g>
<g xmlns="" id="Gateway.name">
<text xmlns="" id="GATEWAY.Gateway.name.3" x="0" y="0" pointer-events="none" visibility="visible" transform="translate(40 19)">
<tspan xmlns="" x="0" dy="0" text-anchor="middle"> EnginContr</tspan>
<tspan xmlns="" x="0" dy="15" text-anchor="middle">Modul1 </tspan>
<tspan xmlns="" x="0" dy="15" text-anchor="middle"></tspan>
</text>
</g>
</g>
Comment