URL: https://www.overclockers.at/coding-stuff/xslt_links_the_secound_encounter_70882/page_1 - zur Vollversion wechseln!
Also mein nächstes XSLT Problem:
Code: PHP<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html><head></head><body bgcolor="#426289" text="#000000" id="all"> <xsl:apply-templates /> </body></html> </xsl:template> <xsl:template match="bild"> <img> <xsl:attribute name="src"><xsl:value-of select="." /> </xsl:attribute> <xsl:value-of select="." /> </img> </xsl:template> <xsl:template match="link1"> <a> <xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute> <xsl:value-of select="text" /> </a> </xsl:template> <!-- Link 1 gibt text aus--> <xsl:template match="link2"> <a> <xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute> <xsl:value-of select="bild" /> </a> </xsl:template> </xsl:stylesheet>
<img> is ein empty-tag, dh. er hat kein </img>Zitat von ElektrosmogAlso mein nächstes XSLT Problem:Code: PHP<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html><head></head><body bgcolor="#426289" text="#000000" id="all"> <xsl:apply-templates /> </body></html> </xsl:template> <xsl:template match="bild"> <img> <xsl:attribute name="src"><xsl:value-of select="." /> </xsl:attribute> <xsl:value-of select="." /> </img> </xsl:template> <xsl:template match="link1"> <a> <xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute> <xsl:value-of select="text" /> </a> </xsl:template> <!-- Link 1 gibt text aus--> <xsl:template match="link2"> <a> <xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute> <xsl:value-of select="bild" /> </a> </xsl:template> </xsl:stylesheet>
Wieso gehts des nicht mit dem Bild als Linkobjekt (link2). Das Bild ohne die Link2 Tags wird mir aber korrekt angezeigt!


1. statt den umständlichen xsl:attribute Elementen verwende ich wo immer möglich lieber diese Syntax:
<a href="{target}"><xsl:value-of select="text"/></a>
2. Es gibt Commandline XSLT Prozessoren (z.B. XT, aber auch bei MSXML ist da AFAIR was dabei), mit denen kann man sich dann in aller Ruhe den generierten Output anschauen.
hmm, mag sein und ich kannte diese form auch noch nicht, aber das dürfte wohl wieder eine programmierstil-frage seinZitat von that1. statt den umständlichen xsl:attribute Elementen verwende ich wo immer möglich lieber diese Syntax:
<a href="{target}"><xsl:value-of select="text"/></a>

Zitat von that1. statt den umständlichen xsl:attribute Elementen verwende ich wo immer möglich lieber diese Syntax:
<a href="{target}"><xsl:value-of select="text"/></a>
2. Es gibt Commandline XSLT Prozessoren (z.B. XT, aber auch bei MSXML ist da AFAIR was dabei), mit denen kann man sich dann in aller Ruhe den generierten Output anschauen.
Habe die DTD, XML und XSLT gepostet. was mach ich falsch. Code bitte korrigieren!!
DTD Anweisung:
<!ELEMENT linktext (#PCDATA | link | link2)*>
<!ELEMENT link (target | text)>
<!ELEMENT link2 (ziel | bild)>
<!ELEMENT target (#PCDATA)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT bild (#PCDATA)>
<!ELEMENT ziel (#PCDATA)>
XML Anwendung:
?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE linktext SYSTEM "link.dtd">
<?xml-stylesheet type="text/xsl" href="link.xsl" ?>
<linktext>
Unter der Adresse
<link><target>http://www.w3.org/Style/XSL/</target><text>Click</text></link>
finden Interessierte
die Einstiegsseite des W3-Konsortiums zu XSL. <link2><ziel>http://www.rpa-online.net</ziel><bild>wikilogo.gif</bild></link2><bild>wikilogo.gif</bild>
</linktext>
XSLT Anwendung:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Hier die ganzen Daten die ihr haben wolltet.
<xsl:template match="/">
<html><head></head><body bgcolor="#426289" text="#000000" id="all">
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="bild">
<img>
<xsl:attribute name="src"><xsl:value-of select="." /> </xsl:attribute>
<xsl:value-of select="bild" />
</img>
</xsl:template>
<xsl:template match="link">
<a>
<xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute>
<xsl:value-of select="text" />
</a>
</xsl:template>
<!-- Link gibt text aus-->
wlkikiv - ich habs dir oben geschrieben, mit erklärung und allem drum und dranZitat von Elektrosmog<xsl:template match="/">
<html><head></head><body bgcolor="#426289" text="#000000" id="all">
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="bild">
<img>
<xsl:attribute name="src"><xsl:value-of select="." /></xsl:attribute>
</img>
</xsl:template>
<xsl:template match="link">
<a>
<xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute>
<xsl:value-of select="text" />
</a>
</xsl:template>
<!-- Link gibt text aus-->
<xsl:template match="link2">
<a>
<xsl:attribute name="href"><xsl:value-of select="target" /></xsl:attribute>
<xsl:value-of select="bild" />
</a>
</xsl:template>

besorg dir das da:
http://msdn.microsoft.com/downloads...ompositedoc.xml
benutze es und schau dir den Output an. Dann solltest du ganz von selbst draufkommen, was falsch ist.
flame me, aber is das "|" nicht ein exclusive OR? und nachdem kein * da steht...Zitat von Elektrosmog<!ELEMENT link (target | text)>
<!ELEMENT link2 (ziel | bild)>
probier mal mit nnem "," vielleicht gehts ja dann...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026