IE、FireFox、Chromeなどのブラウザと互換性のあるXML処理関数jsコード_javascriptスキル
XML を処理する Web ページを作成する場合、ブラウザの互換性が頭を悩ませることがよくあります。そこで、一般的な XML 操作を関数にカプセル化しました。一定期間の改良を経て、現在では非常に安定して快適に使用できるようになりました。
関数には次のものが含まれます—
xml_loadFile: XML の同期/非同期ロード。
xml_transformNode: xsl 変換。
xml_text: ノードのテキスト。
selectSingleNode: XPath に基づいて単一ノードを選択します。
selectNodes: XPath に基づいて複数のノードを選択します。
フルコード (zyllibjs_xml.js) -
/*
zyllibjs_xml
XML 処理
@author zyl910
注 ——
1. Chrome は、セキュリティ メカニズムの制限によりローカル ファイルを読み取ることができません。
参照
~~~~~~~~~
http://www.jinlie.net/?p=302
Chrome ブラウザが XML ドキュメントをロード
更新
~ ~ ~~~~
[2011-11-02]
定義。
[2011-11-09]
xml_loadFile: コールバック関数に isError パラメータを追加しました。
[2011-11-21]
selectSingleNode
selectNodes
*/
// XML ファイルをロードし、XML ドキュメント ノードを返します
// return: 成功時にオブジェクトを返します (同期) XML ドキュメント オブジェクトはモードで返され、操作オブジェクトは非同期モードで返され、失敗した場合は null が返されます。
// xmlUrl: XML ファイルの URL。
// funcAsync: コールバック関数。function onload(xmlDoc, isError){ ... }
function xml_loadFile(xmlUrl, funcAsync)
{
var xmlDoc = null; false;
var asyncIs = (null!=funcAsync); // 非同期読み込みかどうか。 funcAsync が空でない場合は非同期読み込みが使用され、それ以外の場合は同期読み込みが使用されます。
// パラメータをチェックします
if (""==xmlUrl) return null;
if (asyncIs)
{
if ("function"!=typeof(funcAsync)) return null;
}
// XML オブジェクトを作成します
try
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM") // IE をサポート
}
catch(ex);
{
}
if (null==xmlDoc)
{
try
{
// Firefox、Mozilla、Opera などをサポート
xmlDoc = document. implementation.createDocument("", "", null); // 空の XML ドキュメント オブジェクトを作成します。
}
catch(ex)
{
}
}
if (null==xmlDoc) return null;
// XML ドキュメントをロード
xmlDoc.async = asyncIs;
if (asyncIs)
{
if(window.ActiveXObject)
{
xmlDoc.onreadystatechange = function(){
if(xmlDoc.readyState == 4)
{
var isError = false;
if (null!=xmlDoc.parseError)
{
isError = (0!=xmlDoc.parseError.errorCode); // 0 成功、失敗0 は失敗しました。
}
funcAsync(xmlDoc, isError);
}
}
}
else
{
xmlDoc.onload = function(){
funcAsync( xmlDoc, false);
}
}
}
try
{
xmlDoc.load(xmlUrl);
catch(ex)
{
//alert(ex.message) // ブラウザが Chrome の場合、次の例外がキャッチされます: オブジェクト # (ドキュメント) には "load" メソッドがありません
isChrome = true
xmlDoc = null; ;
}
if (isChrome)
{
var xhr = new XMLHttpRequest();
if (asyncIs) // 非同期
{
xhr.onreadystatechange = function( ){
if(xhr.readyState == 4)
{
funcAsync(xhr.responseXML, xhr.status != 200);
}
}
xhr.open( "GET", xmlUrl, true);
try // 非同期モードでは、コールバック関数がエラーを処理します。
{
xhr.send(null);
}
catch(ex)
{
funcAsync(null, true);
return null; 🎜>return xhr; // 注: 返されるのは XMLHttpRequest です。非同期モードで戻り値をテストする場合は、null のみを使用することをお勧めします。
}
else // 同期
{
xhr.open("GET", xmlUrl, false); // 同期モード、呼び出し元による例外の処理
xmlDoc = xhr.responseXML;
}
}
return xmlDoc;
}
// XSLT を使用して XML ドキュメントを文字列に変換します。
function xml_transformNode(xmlDoc, xslDoc)
{
if (null==xmlDoc) return "";
if (null==xslDoc) return "";
if (window.ActiveXObject) ) // IE
{
return xmlDoc.transformNode(xslDoc)
}
else // FireFox、Chrome
{
// XSLTProcesor オブジェクトを定義します
var xsltProcessor= new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var result=xsltProcessor.transformToDocument(xmlDoc);
var xmls=new XMLSerializer(); rt = xmls.serializeToString(result);
return rt;
}
}
// ノードのテキストを取得します
function xml_text(xmlNode)
{
if (null ==xmlNode) return "";
var rt;
if (window.ActiveXObject) // IE
{
rt = xmlNode.text;
else
{
// FireFox、Chrome、...
rt = xmlNode.textContent;
}
if (null==rt) rt=xmlNode.nodeValue; // XML DOM return rt;
}
// メソッドを追加します。 FireFoxおよびChromeと互換性を持たせるため。
if (!window.ActiveXObject)
{
XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath)
{
var x = this.selectNodes(xpath)
if ( ! x ||
{
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver( this.ownerDocument == null?this.documentElement : this.ownerDocument.documentElement) ;
var result = xpe .evaluate(xpath, this , nsResolver, 0 , null );
var res
while (res = result.iterateNext())
見つかった.push(res );
見つかったものを返す
}
}
Chrome ブラウザは XML ドキュメントをロードします
Chrome ブラウザは、XML ドキュメントをロードするためのloadメソッドをサポートしていません。オンラインで検索した後、次の解決策が必要です:
function loadXMLDoc( xml_name)
{
var xmlDoc;
try
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM") // IE をサポート
}
catch(e)
{
try
{
// Firefox、Mozilla、Opera などをサポート
xmlDoc = document.implementation.createDocument("", "", null) ;/ / 空の XML ドキュメント オブジェクトを作成します。
}
catch(e)
{
alert(e.message);
}
}
// XML ドキュメントをロード
try
{
xmlDoc.async = false; // 非同期読み込みをオフにする
xmlDoc.load(xml_name);
catch(e)
{
//alert(e.message) if ブラウザが Chrome の場合、次の例外をキャッチします: オブジェクト # (ドキュメント) にはメソッド "load" がないため、次の実装は XML ドキュメントの Chrome ロードをサポートします (大まかに書いています)
var xhr = new XMLHttpRequest() ;
xhr.open("GET", xml_name, false);
xhr.responseXML.documentElement;
xhr.responseXML.documentElement; >}
ところで、ブラウザごとに XML 文字列のロード方法が異なります。
IE は、loadXML() メソッドを使用して XML 文字列を解析します。
コードをコピーします
コードをコピー

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。

PHPXML 関数を使用して XML データを処理します。 XML データを解析します。 simplexml_load_file() および simplexml_load_string() は、XML ファイルまたは文字列を読み込みます。 XML データにアクセスする: SimpleXML オブジェクトのプロパティとメソッドを使用して、要素名、属性値、およびサブ要素を取得します。 XML データを変更する: addChild() メソッドと addAttribute() メソッドを使用して、新しい要素と属性を追加します。シリアル化された XML データ: asXML() メソッドは、SimpleXML オブジェクトを XML 文字列に変換します。実用的な例: 製品フィード XML を解析し、製品情報を抽出し、変換してデータベースに保存します。

Python を使用した XML でのデータ検証の実装 はじめに: 実生活ではさまざまなデータを扱うことがよくありますが、その中でも XML (Extensible Markup Language) は一般的に使用されるデータ形式です。 XML は可読性と拡張性に優れており、データ交換や設定ファイルなどさまざまな分野で広く使用されています。 XML データを処理する場合、多くの場合、データの整合性と正確性を確認するためにデータを検証する必要があります。この記事では、Python を使用して XML でデータ検証を実装し、対応する

Jackson は、Java オブジェクトから JSON へ、および JSON から Java オブジェクトへの変換に役立つ Java ベースのライブラリです。 JacksonAPI は他の API よりも高速で、必要なメモリ領域が少なく、大きなオブジェクトに適しています。 XmlMapper クラスの writeValueAsString() メソッドを使用して POJO を XML 形式に変換します。対応する POJO インスタンスをパラメーターとしてこのメソッドに渡す必要があります。構文 publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingExceptionExampleimp

PHP と XML: SOAP メッセージを解析する方法 概要: SOAP (Simple Object Access Protocol) は、ネットワーク上で XML メッセージを送信するためのプロトコルであり、Web サービスや分散アプリケーションで広く使用されています。 PHP では、組み込みの SOAP 拡張機能を使用して、SOAP メッセージを処理および解析できます。この記事では、PHP を使用して SOAP メッセージを解析する方法を紹介し、いくつかのコード例を示します。ステップ 1: SOAP 拡張機能をインストールして有効にする まず、次のものが必要です。
