Thomas J.S.: xsl match apply templates

Beitrag lesen

Hallo,

Wenn ich jetzt für die "id" und alles weitere noch individuelle Formatierung bzw. Zusätze habe, dann muss ich für jeden Unterknoten wieder den kompletten XPath angeben.

Nein, eigentlich nicht.

denn
<xsl:template match="id">
spuckt dan alle ids aus (apply templates hab ich jetzt weggelassen).

aber gerade das apply-template wäre gut gewesen, denn schließlich entscheidet das wie und wo die Templates aufgerufen werden

<xsl:template match="/produktliste/produkt">
 <xsl:apply-templates />
</xsl:template>

<xsl:template match="id">...</xsl:template>
<xsl:template match="foo">...</xsl:template>

Falls in einem <produkt> ein <id> und ein <foo> gibt, werden die dafür vorgesehenen Templetes im jeweiligen produkt ausgeführt (und es werden nur die entsprechenden Unterelemente des aktuellen produkts berücksichtigt).

Fragen: 1. kann ich denn mit einer "zentralen" Angabe das Produkt rausfiltern und dann in der Folge nur noch mit match="id" etc. auf die Unterknoten zugreifen.

Ich weiss nicht was du damit meinst.

  1. Kann ich denn mit Javascript zB. den xsl-file so manipulieren,

Nein. Du kannst mit JavaScript das XSL nicht manipulieren.

dass ich zb den Abfragewert von id manipuliere, dass er mir dann ID1 oder ID2 oder ID3 ausspuckt, ja nach Häkchen oder Knopfdruck?

Oder ist da am Ansatz was falsch?

Das ist was anderes: du willst aus der HTML-Datei heraus mit JavaScript Variablen für die Transfrormation setzen, das ist möglich. Beispiele dazu findest du von mir im Archiv. (Stichwort z.B. xmlhttprequest)

Wenn du das ganze mit serverseitiger Technologie lösen kannst oder willst, muss du einfach das Formular mittels XSLT erzeugen. Mit JavaScript kannst du dann wie üblich Werte im Formular setzen und das Formular absenden, an der Serverseite auswerten und eine neue Ausgabe generieren.

Grüße
Thomas