无论如何在XML文档中更改XML文档的内容类型?

时间:2008-12-19 18:12:10

标签: xml http-headers xmlhttprequest content-type

是否有更改XML文档中XML文档的内容类型?

我正在处理一个传回HTML的旧系统(我们正试图让它返回XML)。我正在从XMLHttpRequest中检索它,我注意到使用netcat它没有传回任何内容类型的头文件。

当我收到XMLHttpRequest.responseXML时,responseText存在,但responseXML为null。

我已经检查了返回的XML,看它是否格式正确,看起来是(这是一个非常短的文档)。

3 个答案:

答案 0 :(得分:1)

没有。您引用的Content-Type(在您的问题的评论中)是HTTP标头的一部分。

对于(例如)XML文档而言,HTTP仅仅是传输方式。它们是有效负载,它们对HTTP标头一无所知,因此无法更改它们。

你可能的意思是“XML中是否有等同于<meta http-equiv="...。不,没有。甚至HTML也无法改变HTTP标头,它只能使用户代理的行为不同。这是如果HTML文件已保存到磁盘,则非常有用;加载时,用户代理无法使用任何标头。

在XML中,所有必要的信息都在文件顶部的处理指令(<?xml version="1.0" encoding="UTF-8"?>)中。无需正确加载/显示标题信息。

答案 1 :(得分:0)

没有

当UA可以访问任何此类标记时,它已经必须决定它正在解析哪种文档。

答案 2 :(得分: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;
}

干杯!