XSLT Links - the secound encounter

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/xslt_links_the_secound_encounter_70882/page_1 - zur Vollversion wechseln!


Elektrosmog schrieb am 12.03.2003 um 18:53

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>

Wieso gehts des nicht mit dem Bild als Linkobjekt (link2). Das Bild ohne die Link2 Tags wird mir aber korrekt angezeigt!


watchout schrieb am 12.03.2003 um 20:08

Zitat von Elektrosmog
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>

Wieso gehts des nicht mit dem Bild als Linkobjekt (link2). Das Bild ohne die Link2 Tags wird mir aber korrekt angezeigt!
<img> is ein empty-tag, dh. er hat kein </img>
in xhtml darf es zwar empty-tags auch alternativ mit end-tag geben, nur darf dann zwischen <img></img> NICHTS stehen, weder leerzeichen, noch zeilenumbruch

edit: wie's in xsl mit den zeilenumbrüchen und whitespaces steht kann ich nicht sagen, weil man kann sich ja den produzierten source vom dämlichen ie nicht anschaun, aber das <xsl:value-of select="." /> sollt da auf keinen fall stehen ;)

abgesehen davon wärs ganz praktisch, wennst auch dtd und xml postest ;)


that schrieb am 12.03.2003 um 21:05

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.


watchout schrieb am 12.03.2003 um 22:44

Zitat von that
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>
hmm, mag sein und ich kannte diese form auch noch nicht, aber das dürfte wohl wieder eine programmierstil-frage sein ;)


Elektrosmog schrieb am 13.03.2003 um 18:49

Zitat von that
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.

ah des kenn ich noch nicht. werd das mal umsetzen und meinen Info Lehrer dermaßen verwirren. Thx


Elektrosmog schrieb am 13.03.2003 um 19:40

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-->


watchout schrieb am 13.03.2003 um 20:09

Zitat 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>
wlkikiv - ich habs dir oben geschrieben, mit erklärung und allem drum und dran

aber ich gebs eh schon auf, wenn du den roten bereich so änderst wies jetz is, sollts passen

ps: das link2 template sollt noch dabei sein ;)


that schrieb am 13.03.2003 um 20:14

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.


watchout schrieb am 24.03.2003 um 00:00

Zitat von Elektrosmog
<!ELEMENT link (target | text)>
<!ELEMENT link2 (ziel | bild)>
flame me, aber is das "|" nicht ein exclusive OR? und nachdem kein * da steht... :rolleyes: probier mal mit nnem "," vielleicht gehts ja dann...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026