XSL-Übersicht / sitemap.xml mit XSLT 3.0 generieren

sitemap.xml mit XSLT 3.0 generieren

sitemap.xml mit XSLT 3.0 generieren

➪ Dieser Abschnitt beschreibt die Konvertierung einer Textdatei in eine "sitemap.xml"-Datei.

Eine "sitemap.xml" ist ein Muss für jede Webseite, die im weltweiten Netz gefunden werden soll. Suchmaschinen können "sitemap.xml" auslesen und die darin gelisteten Webadressen ansprechen.

https://www.sitemaps.org/de/ Offizielle Webseite (deutsch)
https://www.sitemaps.org/de/terms.html Geschäftsbedingungen (unbedingt durchlesen!)
https://www.sitemaps.org/de/protocol.html Zusatzinformationen und Beispiele über das Sitemaps-XML-Format
https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd XML-Schema für Sitemaps
https://de.wikipedia.org/wiki/Sitemap Siehe auch die Zusatzinformationen in Wikipedia.

Der Aufbau der "sitemap.xml" ist standardisiert und mit einem Namespace http://www.sitemaps.org/schemas/sitemap/0.9 versehen. Unterhalb des Root-Elements urlset findet sich für jede anzuzeigende Webseite ein url-Element. Dieses wiederum hat folgende Childnodes:

loc Notwendige Information. Sie umfasst die vollständige Webadresse, z.B. http://www.wilfried-grupe.de/namespaces.html
lastmod Optionale Information; zeigt das Datum der letzten Änderung an. Wichtig ist hier die korrekte Formatierung.
changefreq Optionale Information. Definiert die Häufigkeit der Änderungen. Zulässige Werte sind: always, hourly, daily, weekly, monthly, yearly, never.
priority Optionale Information. Die Werte dürfen zwischen 0.0 und 1.0 liegen. Die Standard-Priorität ist 0.5.

Stellen Sie sich vor, Sie haben eine Datei "sitemap__test.txt", die Ihre Webseiten nur mit Namen, aber nicht mit voller Webadresse auflistet.


_01_Basics_XML.html
namespaces.html
XSD.html
XPath.html
JAVA_XML.html
Datenaustausch.html
XSL30.html
XQuery.html
CSV.html

Nun geht es darum, diese Textdatei in eine echte "sitemap.xml"-Datei zu konvertieren. Mit XSLT 3.0 geht das relativ einfach. Die folgende Logik liest die Datei zeilenweise aus, löscht dabei mit normalize-space eventuell vorhandene führende oder schließende Leerzeichen, sie es um fehlende Pfadinformationen der Webadresse, generiert weitere Informationen und schreibt das Ergebnis in eine Datei "sitemap____test.xml".


<xsl:variable name="HTML_Links"
  select="'C:/wg/sitemap__test.txt'" />
<xsl:result-document
  href="C:/wg/sitemap____test.xml"
  encoding="UTF-8">
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <xsl:for-each 
         select="unparsed-text-lines($HTML_Links)">
      <url>
        <loc>
          <xsl:value-of 
               select="concat('http://www.wilfried-grupe.de/', 
                       normalize-space(.))" />
        </loc>
        <changefreq>daily</changefreq>
        <priority>0.5</priority>
      </url>
    </xsl:for-each>
  </urlset>
</xsl:result-document>

Natürlich müssen Sie das Programm für eigene Bedarfe anpassen. So wie es oben steht, wird es für Ihre Zwecke vermutlich nicht ausreichen. Daher übernehme ich auch keine Haftung für das Programm oder für Ihre Ergebnisse.

Die generierte Datei sehen Sie unten. Aber Moment: wieso "sitemap____test.xml"? Geht es nicht darum, eine Datei "sitemap.xml" zu erzeugen? Natürlich, natürlich, und im Endeffekt sollte die Zieldatei auch genau so heißen: "sitemap.xml". Wenn Sie "sitemap____test.xml" getestet haben, können Sie sie gern in "sitemap.xml" umbenennen oder von vornherein die Zieldatei so benennen. Ist nur zu Ihrer Sicherheit, bevor Sie eine eventuell bestehende, hochwichtige "sitemap.xml" versehentlich überschreiben ;-)


<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.wilfried-grupe.de/namespaces.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/XSD.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/XPath.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/JAVA_XML.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/Datenaustausch.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/XSL30.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/XQuery.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
   <url>
      <loc>http://www.wilfried-grupe.de/CSV.html</loc>
      <changefreq>daily</changefreq>
      <priority>0.5</priority>
   </url>
</urlset>

Im weltweiten Netz gibt es zahlreiche Tipps, "sitemap.xml" durch ping bei verschiedenen Suchmaschinen anzumelden.

wg / 31. März 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSL_30_sitemap.html