2

JS 内で処理する必要がある大きな XML があります。(xml ファイルから js ファイルに) コピー/貼り付けして、xml ファイルの約 1000 行をそれぞれ引用するよりも良い解決策はありますか?

そのxmlファイルをリソースとしてフラッシュに「埋め込む」ことはできますか?

4

2 に答える 2

5

通常の解決策は、単純に XML ファイルを外部に出し、XMLHttpRequestを使用して取得することです。

function fetchXMLFile(url, callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                var xml = httpRequest.responseXML;
                if (callback) callback(xml);
            }
        }
    };
    httpRequest.open('GET', url);
    httpRequest.send(); 
}

fetchFile('myFile.xml', function(xml){
   // use the xml
});

本当にデータをコードに埋め込みたい場合は、お気に入りのエディターで正規表現をいじるか、埋め込みを行うための小さなツールを作成する必要がありますが、大きなデータをソース コードとマージすることがベスト プラクティスと見なされることはめったにありません。通常、両方のパーツのライフサイクルは異なります。

于 2013-01-10T12:40:31.153 に答える
1

あなたはそれを16進またはjson表現で書くことを試みることができます。

たとえば、「この文字列」は「\ x74 \ x68 \ x69 \ x73 \ x20 \ x73 \ x74 \ x72 \ x69 \ x6e\x67」になります。あなたのためにこれを行うオンラインツールがたくさんあります。たとえば、これは機能しますが、「\ x」は含まれないため、javascriptはそれを通常の文字列として解釈します。\ xを追加し、正しい16進形式にするために、任意のjavascriptコンソールでこの関数をその場で実行します:(もちろん、引用符で囲まれたテキストを生成された16進数字に置き換えます)

"7468697320737472696e67".replace(/([A-F\d]{2})/gi, "\\x$1"); // \x74...\x67

次に、この文字列をソースにコピーするだけで、機能するはずです。xmlを解析したい場合は、これを見てください-xmlを有効なjavascriptオブジェクトであるjsonに変換する別のオンラインツールです。割り当てるときに直接使用します。

于 2013-01-10T13:39:08.117 に答える