ホームページ >ウェブフロントエンド >jsチュートリアル >DOM パーサーを使用して JavaScript で XML データを解析するにはどうすればよいですか?

DOM パーサーを使用して JavaScript で XML データを解析するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-05 11:59:15706ブラウズ

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

JavaScript を使用した XML の解析

JavaScript を使用した XML の解析では、XML データをより管理しやすい形式に変換して処理します。外部フレームワークを使用せずに XML を解析するには、最新のブラウザで利用できるドキュメント オブジェクト モデル (DOM) を利用できます。

文字列変数に格納されている次の XML を考えてみましょう:

<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>

解析するにはDOM を使用してこの XML を作成するには、次の手順に従います。

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);
}

XML が解析されたら、特定のデータを取得できます。ノードからの値:

// 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);

さらに、XML に名前空間プレフィックスが含まれている場合、名前空間を要求するときにプレフィックスを含めないでください:

// 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);

以上がDOM パーサーを使用して JavaScript で XML データを解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。