Start · Sprachen · JavaScript · Referenz · Document.xmlVersion

Document.xmlVersion

Eigenschaft

Gibt die Versionsnummer aus der XML-Deklaration eines Dokuments zurück, z. B. <code>"1.0"</code> oder <code>"1.1"</code>. Die Eigenschaft ist veraltet.

seit JavaScript Veraltet: aus DOM4 entfernt, in Firefox seit Versi deprecated seit ja Kategorie: webapi

Signatur

Document.xmlVersion

Beschreibung

Die Eigenschaft Document.xmlVersion gibt als Zeichenkette die XML-Version zurück, die in der XML-Deklaration am Anfang eines XML-Dokuments steht. Bei <?xml version="1.1" encoding="UTF-8"?> ist der Wert "1.1". Fehlt die Deklaration, ist laut der alten Spezifikation "1.0" der Standardwert.

Die Eigenschaft stammt aus DOM Level 3 Core. Sie gilt nur für XML-Dokumente, also etwa für Dokumente, die mit DOMParser und dem Typ application/xml erzeugt oder über XMLHttpRequest.responseXML geladen wurden. Bei HTML-Dokumenten war der Wert je nach Browser null. In älteren Implementierungen konnte man die Eigenschaft auch beschreiben. Dann wurde eine NOT_SUPPORTED_ERR-Ausnahme ausgelöst, wenn die Version nicht unterstützt war.

Seit DOM4 bzw. dem WHATWG DOM Living Standard ist xmlVersion nicht mehr Teil des Standards. Gecko hat die Eigenschaft entfernt, andere Engines nutzen sie nicht mehr aktiv. Verwende sie in neuem Code nicht. Wenn du die XML-Version wirklich brauchst, lies sie direkt aus dem Quelltext der XML-Deklaration aus (siehe Beispiele).

Rückgabewert

Typ
string | null | undefined
Beschreibung
Die Versionsnummer aus der XML-Deklaration (z. B. "1.0", "1.1"). Ohne Deklaration ist der Wert "1.0". Bei HTML-Dokumenten kann der Wert null sein, in Browsern ohne Unterstützung ist er undefined.

Beispiele

Unterstützung prüfen und Wert auslesen

const xml = '<?xml version="1.1" encoding="UTF-8"?><root/>';
const doc = new DOMParser().parseFromString(xml, 'application/xml');

if ('xmlVersion' in doc) {
  console.log('XML-Version:', doc.xmlVersion);
} else {
  console.log('Document.xmlVersion wird nicht unterstützt');
}
Document.xmlVersion wird nicht unterstützt // in alten Browsern mit Unterstützung: XML-Version: 1.1

Standardersatz: Version aus der XML-Deklaration lesen

const getXmlVersion = (source) => {
  // Die XML-Deklaration muss ganz am Anfang des Dokuments stehen
  const match = /^\s*<\?xml\s+version\s*=\s*(["'])([^"']+)\1/.exec(source);
  return match ? match[2] : '1.0'; // ohne Deklaration gilt 1.0
};

console.log(getXmlVersion('<?xml version="1.1"?><feed/>'));
console.log(getXmlVersion('<feed/>'));
1.1 1.0

Version einer per fetch geladenen XML-Datei ermitteln

const loadXml = async (url) => {
  const response = await fetch(url);
  const text = await response.text();
  const doc = new DOMParser().parseFromString(text, 'application/xml');

  // Zuerst die veraltete Eigenschaft versuchen, dann den Quelltext auswerten
  const version = doc.xmlVersion
    ?? /^\s*<\?xml\s+version\s*=\s*["']([^"']+)/.exec(text)?.[1]
    ?? '1.0';

  return { doc, version };
};

const { version } = await loadXml('/data/katalog.xml');
console.log(`katalog.xml nutzt XML ${version}`);
katalog.xml nutzt XML 1.0

// Wichtig · Fallstricke

  • Veraltet: Die Eigenschaft wurde aus DOM4 bzw. dem WHATWG DOM Standard entfernt. Firefox unterstützt sie seit Version 10 nicht mehr, dort ist der Wert undefined. Auch in anderen Browsern solltest du dich nicht darauf verlassen.
  • Die Eigenschaft ist nur für XML-Dokumente gedacht. Bei HTML-Dokumenten wie window.document einer normalen Webseite ist der Wert null oder undefined.
  • Browser-Parser verarbeiten XML 1.1 in der Regel wie XML 1.0. Eine gemeldete Version "1.1" heißt also nicht, dass Besonderheiten von XML 1.1 unterstützt werden.
  • Die zugehörigen Eigenschaften xmlEncoding und xmlStandalone sind ebenfalls veraltet. Für die Zeichenkodierung gibt es Document.characterSet.
  • Der Schreibzugriff (Zuweisung einer neuen Version) hatte schon früher kaum Wirkung und wird von modernen Engines ignoriert.