如何使用 fetch api 获取 XML

2024-01-05

我正在尝试制作一个天气应用程序,显示一周中许多天的天气和温度。我目前正在使用 openweathermap api 来完成此类任务,问题是我想要的信息(即天气日期)仅采用 xml 格式。 由于我出于学术原因在 ES6(ES2015) 中重建它,我还想使用 fetch api,但由于 fetch 方法解析它,它只是传递一个错误。 那么我怎样才能获取它或者有更好的方法来做到这一点。

let apis = {
    currentWeather: { //get user selected recomendation weather
        api:"http://api.openweathermap.org/data/2.5/forecast/daily?lat=",
        parameters: "&mode=xml&units=metric&cnt=6&APPID=/*api key*/",
        url: (lat, lon) => {
            return apis.currentWeather.api + lat + "&lon=" + lon +
                   apis.currentWeather.parameters
        }
    }
};
function getCurrentLoc() { 
    return new Promise((resolve, reject) =>  navigator.geolocation
                                             .getCurrentPosition(resolve, reject))
}
function getCurrentCity(location) {
    const lat = location.coords.latitude;
    const lon = location.coords.longitude;
    return fetch(apis.currentWeather.url(lat, lon))
    .then(response => response.json())
    .then(data => console.log(data))
}
getCurrentLoc()
.then( coords => getCurrentCity(coords))

使用原生 DOMParser getCurrentCity(location) 可以写成:

function getCurrentCity(location) {
    const lat = location.coords.latitude;
    const lon = location.coords.longitude;
    return fetch(apis.currentWeather.url(lat, lon))
        .then(response => response.text())
        .then(str => new window.DOMParser().parseFromString(str, "text/xml"))
        .then(data => console.log(data));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 fetch api 获取 XML 的相关文章

随机推荐

  • lambda 找不到我的 node_modules

    我正在尝试使用 lambda 上传 node modules 但我得到了 Cannot find module error 我已经设置了一个真正简单的 hello world js 文件 var async require async 我已
  • 如何在 Spark Scala 中将 null NAN 或 Infinite 值替换为默认值

    我正在将 csv 读入 Spark 并将架构设置为所有 DecimalType 10 0 列 当我查询数据时 出现以下错误 NumberFormatException Infinite or NaN 如果我的数据框中有 NaN null i
  • 使用 AJAX.NET 的 $get() 和 $find()

    我正在尝试遵循找到的 PageMethods 示例here http encosia com 2007 07 11 why aspnet ajax updatepanels are dangerous 但是 我在尝试调用时收到错误 get
  • Restlet HTTP 连接池

    我对 Restlet 相当陌生 编写了一小段代码来进行 HTTP 调用 它正在工作 但我想知道如何将 HTTP 连接池 apache 添加到其中 我找不到任何教程或参考代码 Client client new Client Protocol
  • 在 Java JFrame 中显示图像

    在 java JFrame 中的特定坐标处显示图像的最佳方法是什么 我知道有很多方法可以做到这一点 我只需要知道显示我计划在框架中移动的图像的最佳方式 将 ImageIcon 与 JLabel 结合使用是最简单的方法 实际上 您可以根据您的
  • 在 3d 中绘制 3 个向量

    我有 3 个向量 其中一个向量的角度为Phi 另一个角度为Teta 最后一个是点向量Y axe 计算完点后Teta Phi有一个功能 for teta 0 10 2 pi 2 for phi 0 10 2 pi 2 Y current v
  • android 蓝牙连接失败(isSocketAllowedBySecurityPolicy start : device null)

    我试图用蓝牙连接两部手机 galaxy note 1 galaxy note 2 但套接字连接失败 这是我的 LogCat I BluetoothService 24036 BEGIN mConnectThread D BluetoothU
  • 从左侧滑入CSS动画

    我想制作一个简单的动画 当页面加载时 我的徽标应该从框的左侧动画到右侧 我尝试了很多版本 但还没有成功 HTML div img src logo png alt logo style width 170px height 120px di
  • Kafka:使用java更改特定主题的分区数量

    我是 Kafka 新手 正在使用新的 KafkaProducer 和 KafkaConsumer 版本 0 9 0 1 java中是否有任何方法可以在创建特定主题后更改 更新其分区数量 我没有使用 Zookeeper 创建主题 当发布请求到
  • JavaScript 函数通过链式组合

    我检查了重复问题的可能性 并且无法找到准确的解决方案 我用 JavaScript 编写了一些函数链代码 如下所示 并且工作正常 var log function args console log args return function f
  • 浏览器同步无法用 gulp 重新加载

    我正在尝试按如下方式吞咽浏览器同步 var liveReload require browser sync create reload when something changes once scss is converted to css
  • 对话框的 Url 不适用于 angular.bootstrap (无限 $digest 循环)

    我有一个平均堆栈网站 我想用执行函数 https stackoverflow com a 45428344 702977绑定一个按钮以在对话框中启动该网站 function doSomethingAndShowDialog event cl
  • Tensorflow Keras 保留每批的损失

    我正在寻找构建 keras 模型架构的最佳实践的建议 示例 我一直在摸索 Model 子类和功能模型的各种迭代 但无法连接所有点 该模型应具有自定义指标和相关损失 其中 在训练期间 按批次计算指标 并在每个时期结束时根据批次计算的平均值计算
  • 无法解析符号“MediaSessionCompat”

    我无法导入MediaSessionCompat 导入整体的导入声明android support v4 media库不会显示在 Android Studio IntelliSense 中 并且无法解析其中任何内容的符号 我是否必须进行某种额
  • 悬停时动画不透明度 (jQuery)

    我们有一个链接 a href Some text span style width 50px height 50px background url image png span a 我们想要改变的不透明度 span 当链接悬停时带有一些动画
  • 基于接口未实现的通用约束

    我有一个带有工厂服务的应用程序 可以在解决必要的依赖项注入的同时构建实例 例如 我用它来构建对话框视图模型 我有一个如下所示的服务接口 public interface IAsyncFactory Task
  • 如何在实时服务器上调试 ASP.NET 应用程序 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个基于 net Framework 1 1 的旧 asp net Web 应用程序 它已经部署到实时服务器很多年了 现在我仅在实
  • 从模型调用辅助方法

    For my Predictions模型我创建了一个方法predictions helper rb像这样 module PredictionsHelper def time in date time date time between da
  • div宽度高度根据文本?

    我想要根据文本大小选择框的宽度高度 我尝试使用下面的代码 它可以工作 但不是根据文本的节框的最佳宽度和高度 我设计了三个css id 第一个是 wbp row 第二个是 wbp col 最后一个是文本id名称是 tridtext I try
  • 如何使用 fetch api 获取 XML

    我正在尝试制作一个天气应用程序 显示一周中许多天的天气和温度 我目前正在使用 openweathermap api 来完成此类任务 问题是我想要的信息 即天气日期 仅采用 xml 格式 由于我出于学术原因在 ES6 ES2015 中重建它