是否有更改XML文档中XML文档的内容类型?
我正在处理一个传回HTML的旧系统(我们正试图让它返回XML)。我正在从XMLHttpRequest中检索它,我注意到使用netcat它没有传回任何内容类型的头文件。
当我收到XMLHttpRequest.responseXML时,responseText存在,但responseXML为null。
我已经检查了返回的XML,看它是否格式正确,看起来是(这是一个非常短的文档)。
答案 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;
}
干杯!