javascript - JavaScriptを使用して.configファイルから値を読み取る

原文 javascript xml web-config configuration-files xmldom

以下のコードを使用して、拡張子が.configのファイルから値を取得しようとしましたが、
しかし、私はそれを得ることができません...........

ファイル拡張子を.configから.xmlに変更すると、正常に機能します(期待どおりの結果が得られます)

//-----------------------------------------------------

 xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        var b = xmlDoc.load("books.config");//load a file
document.write("<br>" + xmlDoc.length);
        document.write("<br>" + xmlDoc.getElementsByTagName("book").length);
        for (j = 0; j < xmlDoc.getElementsByTagName("book").length; j++) {
            // x = xml.getElementsByTagName("FeatureToggles")[j].attributes;
            x = xmlDoc.getElementsByTagName("book")[j].attributes;
            y = x.getNamedItem("category");
            document.write("<br>" +"category = "+ x.getNamedItem("category").nodeValue);
            document.write("<br>" + x.length);
            if (x.getNamedItem("cover")!=null && x.getNamedItem("cover").nodeValue == "paperback") {
                document.write("Found");
            }
        }

//-----------------------------------------------------------------------------

Sample xml/config:

<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
答え
これはおそらく、loadメソッドがXMLファイルを必要とし、ブラウザが.config拡張子が実際にはXMLであることを認識していないために発生します。このファイルをサーバーから提供する場合は、適切なヘッダーを追加して、.configファイルがXMLであることをブラウザーに通知できます。ヘッダーがないと、ブラウザーはそれを試して理解する必要があります(このプロセスは、https://msdn.microsoft.com/en-us/library/ms775148%28v=vs.85%29.aspxで説明されています)。この仮説が正しい場合、質問で設定している変数b(loadメソッドの戻り値)はfalseになります。


xmlSource:の場所を指定するURLを含む文字列
XMLファイル。


https://msdn.microsoft.com/en-us/library/ms762722%28v=vs.85%29.aspx

これを修正するには、適切なヘッダーを付けてファイルを提供するか(これが他のユーザーが使用するアプリである場合の最善の方法)、. configファイルをXMLとして処理するようにブラウザーに指示する(おそらくお勧めできません)、または単に.xmlを使用しますこれは、ブラウザによって自動的にマッピングされるようです。
関連記事

javascript - ウォーターラインMongoDb(移入済み)でフェッチされたオブジェクトは、その型とプロトタイプ関数を失います

javascript - DIVにプッシュした後のスクリプトの実行

javascript - AngularJS UIルーターのリロードが機能しない

javascript - mouseleaveでキャンバスの上にインタラクティブボックスを配置する

javascript - jQueryでの背景画像の移行に関する問題

javascript - JavaScriptでnullエラーのプロパティ 'addEventListener'を読み取れません[重複]

javascript - JavaScript(Angularフレームワーク)を使用してzipファイルをAmazon S3にアップロードするにはどうすればよいですか?

javascript - jqueryで動的画像のクライアント側画像幅を取得する

javascript - ホスティング後にGoogleマップがAngularビューでレンダリングされない

javascript - JavaScriptでのSIP2チェックサム計算