0

XMLドキュメントで、XMLドキュメントのコンテンツタイプを変更する方法はありますか?

私は、HTML を返す非常に古いシステムを使用しています (そして、XML を返すようにしようとしています)。XMLHttpRequest から取得していますが、netcat を使用して、コンテンツ タイプ ヘッダーを返していないことに気付きました。

XMLHttpRequest.responseXML を受け取ると、responseText は存在​​しますが、responseXML は null です。

返される XML が適切な形式であるかどうかを確認しましたが、そのように見えます (非常に短いドキュメントです)。

4

3 に答える 3

1

いいえ。Content-Typeあなたが参照しているように(質問へのコメントで)、HTTPヘッダーの一部です。

HTTP は、(たとえば) XML ドキュメントの単なる転送手段です。それらはペイロードであり、HTTP ヘッダーについて何も知らないため、変更できません。

おそらく、「XML に相当するものはあり<meta http-equiv="...ますか。いいえ、ありません。HTML でさえ HTTP ヘッダーを変更することはできず、ユーザー エージェントの動作を変更することしかできません。これは、HTML ファイルが次の場所に保存されている場合に役立ちます。ディスクであり、ロード時にユーザー エージェントが使用できるヘッダーはありません。

XML では、必要な情報はすべて<?xml version="1.0" encoding="UTF-8"?>ファイルの先頭にある処理命令 ( ) にあります。正しくロード/表示するためにヘッダー情報は必要ありません。

于 2008-12-19T18:19:17.763 に答える
0

xhr.responseText 文字列を取得して、そこから XML ドキュメントを作成するだけです。

function createDOMFromString(sXml){

    var browser = navigator.appName;
    var oXmlDom = null;

    // IE Implementation...
    if(browser == "Microsoft Internet Explorer") {
         oXmlDom=new ActiveXObject("Microsoft.XMLDOM");
         oXmlDom.async="false";
         oXmlDom.loadXML(sXml);
    }
    // FF Implementation...
    else {
        var oParser = new DOMParser();
        oXmlDom = oParser.parseFromString(sXml, "text/xml");
    }
    // TODO: If we need it Safari implementation.

    return oXmlDom;
}

乾杯!

于 2008-12-19T19:52:27.620 に答える
0

いいえ。

UA がそのようなタグに到達するまでに、解析対象のドキュメントの種類をすでに決定している必要があります。

于 2008-12-19T18:36:38.867 に答える