Heim >Web-Frontend >js-Tutorial >Wie analysiert man XML-Daten in JavaScript mit dem DOM-Parser?

Wie analysiert man XML-Daten in JavaScript mit dem DOM-Parser?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-05 11:59:15670Durchsuche

How to Parse XML Data in JavaScript Using the DOM Parser?

XML mit JavaScript analysieren

Das Parsen von XML mit JavaScript umfasst die Konvertierung von XML-Daten in ein besser verwaltbares Format für die Verarbeitung. Um XML ohne externe Frameworks zu analysieren, können wir das Document Object Model (DOM) verwenden, das in den meisten modernen Browsern verfügbar ist.

Betrachten Sie das folgende XML, das in einer Zeichenfolgenvariablen gespeichert ist:

<address>
  <street>Roble Ave</street>
  <streetNumber>649</streetNumber>
  <lat>37.45127</lat>
  <lng>-122.18032</lng>
  <distance>0.04</distance>
  <postalcode>94025</postalcode>
  <placename>Menlo Park</placename>
  <adminCode2>081</adminCode2>
  <adminName2>San Mateo</adminName2>
  <adminCode1>CA</adminCode1>
  <adminName1>California</adminName1>
  <countryCode>US</countryCode>
</address>

Zum Parsen Um dieses XML mithilfe von DOM zu erstellen, können wir die folgenden Schritte ausführen:

if (window.DOMParser) {
  parser = new DOMParser();
  xmlDoc = parser.parseFromString(txt, "text/xml");
} else { // Internet Explorer
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(txt);
}

Sobald das XML analysiert ist, können wir bestimmte Werte aus dem abrufen Knoten:

// Gets house address number
console.log(xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue);

// Gets Street name
console.log(xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue);

// Gets Postal Code
console.log(xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue);

Wenn das XML außerdem Namespace-Präfixe enthält, sollten die Präfixe bei der Anforderung des Namespace nicht enthalten sein:

// XML with Namespace prefixes
txt = `
Roble Ave 649 94025
`; // Parse with Namespace prefixes if (window.DOMParser) { parser = new DOMParser(); xmlDoc = parser.parseFromString(txt, "text/xml"); } else { // Internet Explorer xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(txt); } // Gets "streetNumber" (note there is no prefix of "sn") console.log(xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue); // Gets Street name console.log(xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue); // Gets Postal Code console.log(xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue);

Das obige ist der detaillierte Inhalt vonWie analysiert man XML-Daten in JavaScript mit dem DOM-Parser?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn