N'Abend,
ich möchte aus HTML-Code Elemente herausfiltern, bekomme es aber nicht einmal gebacken, auf mir nachvollziehbare Art und Weise das oberste Element, also <html> anzusprechen, geschweige denn beispielsweise alle <h1>-Elemente auszufiltern.
HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
</head>
<body>
<h1>Erste</h1>
<h1>Zweite</h1>
<p>Will ich nicht sehen</p>
</body>
</html>
XSLT-Kram dazu:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template match="[siehe unten]">
bla <xsl:value-of select="." /> fasel
</xsl:template>
</xsl:transform>
Folgende Ergebnisse bekomme ich:
<xsl:template match="/"> bla Erste Zweite Will ich nicht sehen fasel
<xsl:template match="html"> ErsteZweiteWill ich nicht sehen
<xsl:template match="/html"> ErsteZweiteWill ich nicht sehen
<xsl:template match="//h1"> ErsteZweiteWill ich nicht sehen
<xsl:template match="h1"> ErsteZweiteWill ich nicht sehen
Mir ist alleine schon schleierhaft, warum ich zwar mit "/" auf <html> zugreifen kann, aber nicht mit "html", vom Rest mal ganz zu schweigen.
Ich weiß auch nicht, warum alle Elementinhalte ausgegeben werden. Ich hatte bei den SELFHTML-Beispielen im XML-Teil ein weiteres, im XSLT-Teil nicht angesprochenes Element eingefügt, das wurde nicht ausgegeben.
Vielleicht kann mir das jemand verständlich erklären. Danke.