【问题标题】:What is the best method to detect xml in JavaScript在 JavaScript 中检测 xml 的最佳方法是什么
【发布时间】:2009-07-16 06:05:05
【问题描述】:

在 JavaScript 中检测 xml 的最佳方法是什么

例如是否可以检测文档的 mime 类型 - 特别是如果它是 JavaScript 中的 text/xml。

这需要在 Chrome 中工作。

谢谢,

乔什

【问题讨论】:

  • 在什么情况下?您是否使用 AJAX 获取内容并需要确定要获取的文档类型?
  • 如何使用 xslt 转换文档,但在尝试之前需要知道它的 xml。
  • 你要转换的文档来自哪里?您的问题有很多可能的答案,但只有一个是正确的,而答案是哪一个取决于知道文档的来源(并且实际上它是否是文档 - 例如,包含一个序列化的字符串XML 文档不是文档)。

标签: javascript google-chrome mime-types


【解决方案1】:

如果您使用XMLHttpRequest 来获取此数据,那么您可以简单地使用getResponseHeader 方法检查Content-Type 标头(允许服务器发送适当的标头)。

var getFile = function(address, responseHandler) {
  var req = new XMLHttpRequest();  

  req.open('get', address, true);  
  req.onreadystatechange = responseHandler;
  req.send(null);  
}

var responseHandler = function(resp) {
  if ( this.readyState < 4 ) { return; }
  console.log(this.getResponseHeader("Content-Type"));
};

getFile("http://zebrakick.com/some/file", responseHandler);

(我似乎经常使用这个代码示例......)

【讨论】:

    【解决方案2】:

    您无法使用 Javascript 确定 mime-type 是什么。我建议在尝试解析返回的数据之前检查它是否是有效的 XML。 (我只是假设你想做什么。如果你澄清你的目标,我可以提供一个更严格的例子。)

    【讨论】:

      【解决方案3】:

      我在确定 chrome 扩展脚本位于 XML 页面上时遇到了这个问题。也许这可以节省一些人的时间。

      在 chrome 控制台和内容脚本中,您可以检查:

      document.contentType==="application/xml"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-09
        • 2013-12-02
        • 1970-01-01
        • 2010-09-29
        • 2019-09-05
        • 2010-09-08
        • 2011-06-16
        • 1970-01-01
        相关资源
        最近更新 更多