Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


sitemap.xml mit XSLT 3.0 generieren

Zusammenfassung:

Die Seite beschreibt die Konvertierung einer Textdatei in eine "sitemap.xml"-Datei.

sitemap.xml mit XSLT 3.0 generieren

Eine "sitemap.xml" ist ein Muß 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 Rootelements "urlset" findet sich für jede anzuzeigende Webseite ein "url"-Element. Dieses wiederum hat folgende Childnodes:

loc notwendige Information. Sie umfaßt 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 wir uns nun 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 Hilfe von XSLT 3.0 geht das relativ einfach. Die folgende Logik liest die Datei zeilenweise aus, löscht dabei mit Hilfe von "normalize-space" eventuell vorhandene führende oder schließende Leerzeichen, ergänzt 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 ganz sicher 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 Tips, "sitemap.xml" durch "ping" bei verschiedenen Suchmaschinen anzumelden. Daneben finden Sie viele weitere (manchmal sogar hilfreiche) Tips, Ihre Webseite ganz nach oben zu bringen.

qrpic/XSL_30_sitemap.jpg

wg / 14. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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