XML Datei in eine XHTML Datei einbinden

danny_b

Grünschnabel
Hallo zusammen!

Ich habe ein Template auf Basis von XHTML und CSS erstellt. Nun möchte ich, dass meine Navigation von einer XML Datei her eingelesen wird. Leider weiss ich nicht, wie genau dies zu bewerkstelligen ist, da das Thema XML & XSLT noch Neuland für mich sind.

Mein XHTML Dokument sieht (gekürzt) folgendermaßen aus:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>XML Navi in XHTML</title>
  <link rel="stylesheet" type="text/css" href="inc/css/styles_index.css" />
</head>
<body>

<div id="header">
  <!-- Logo, Toplinks, ... -->
</div><!--#header -->

<div id="navi">
  <!-- hier soll die Datei navi.xml hineingeladen werden -->
</div><!-- #navi -->

<div id="content">
  <!-- Inhaltsbereich -->
</div><!-- #content -->

<div id="footer">
  <!-- Fusszeile
</div><!-- #footer -->

</body>
</html>

und meine Navigation sieht (gekürzt) so aus:

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="xslt_navi.xsl" ?>
<navi>
  <folder>
    <title id="Kategorie">Fahrräder</title>
    <sub id="sub01">
      <link url="bmx.html">BMX</link>
      <link url="hollandraeder.html">Holland-Räder</link>
    </sub>
  </folder>
</navi>

und die Datei xslt_navi.xsl sieht (gekürzt) so aus:
Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html><head></head><body><div id="navi">
    <xsl:apply-templates />
  </div></body></html>
</xsl:template>

<xsl:template match="title">
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
  <xsl:value-of select="."/>
</xsl:template>

<xsl:template match="link">
  <a>
    <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
    <xsl:value-of select="."/>
  </a>
</xsl:template>

</xsl:stylesheet>

Nur wie bekomme ich die navi in die XHTML Datei



Im voraus schoneinmal recht herzlichen Dank für eure Hilfe!! :)


Lieben Gruß

danny.b
 
Hi.

Die einfachste Möglichkeit wäre statt deines div einen iframe zu nehmen. Dann ist das Dokument allerdings nicht mehr XHTML 1.0 strict sondern transitional.

Eine andere Möglichkeit wäre Javascript zu benutzen um das Dokument zu transformieren und dynamisch in das div einzufügen. Dann darfst du aber aus dem Stylesheet kein eigenes (X)HTML Dokument generieren sonden nur ein Fragment welches dann direkt in das div eingefügt werden kann.

Die letzte Möglichkeit die mir einfällt wäre die Transformation und Einbindung serverseitig zu machen.

Gruß
 

Neue Beiträge

Zurück