首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript -循环浏览xml元素并依次显示

Javascript -循环浏览xml元素并依次显示
EN

Stack Overflow用户
提问于 2016-09-13 14:55:48
回答 1查看 42关注 0票数 0

我正在尝试创建一个应用程序,该应用程序将显示并定期更改一段文本(如新闻文章或类似内容)。我希望数据来自xml文件,这样其他人就可以添加故事/删除旧故事等。我正在尝试让我的JavaScript用来自xml文件的数据填充单个html字段。然后在给定的时间之后,现在我们假设是4秒,它将更改为下一段数据。下面是我一直在尝试做的一个非常粗糙的版本:

HMTL:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<head>
  <script src="script.js"></script>
</head>
<body>
  <div id="text"></div>
</body>

XML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<document>
  <text>one</text>
  <text>two</text>
  <text>three</text>
</document>

JavaScript:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timer = setInterval(addText,4000);

var xhttp = new XMLHttpRequest();
xhttp.onreadystaechange = function() {
    if(this.readyState == 4 && this.status == 200) {
        addText(this);
    }
};

function addText(xml) {
    var xmlDoc = xml.responseXML;
    var count = 0;
    var max = xmlDoc.GetElementsByTagName("text");
    document.getElementById("text").innerHTML = 
    xmlDoc.getElementByTagName("text")[count].childNodes[0].nodeValue;
    if (count < max.length) {
        count++;
    } else {
        count = 0;
    }
}

xhttp.open("GET", "XMLFile.xml",true);
xhttp.send();

我目前遇到的问题是,第一个xml字段填充成功,但随后我收到一个错误消息,显示为"Unable to get property 'responseXML' of undefined or null reference"

理想情况下,我还希望在每次函数执行时打开xml文档,这样,如果向xml文件中添加了额外的数据,应用程序就不必重新启动--如果这是有意义的(并且是可能的)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-13 15:30:17

您可以将addText放在onreadystatechange处理程序的范围内。就像这样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if(this.readyState == 4 && this.status == 200) {
       var xmlDoc = this.responseXML;
       var count = 0;
       var xText = xmlDoc.getElementsByTagName("text");
       var max = xText.length;
       var docText = document.getElementById("text");
       function addText() {
         //docText, xText and  count are available from parent scope
          docText.innerHTML = 
             xText[(count++) % max].childNodes[0].nodeValue;
       }
       var timer = setInterval(addText,4000);
    }
};

xhttp.open("GET", "XMLFile.xml",true);
xhttp.send();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39473091

复制
相关文章
为什么 Promis 比setTimeout()更快?
先做一个实验:来看看立即解决的 Promis 和立即超时( 0 毫秒的超时)哪个执行的更快?
疯狂的技术宅
2021/01/28
7440
为什么Python中的None is None is None == True
最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。
杜逸先
2018/06/28
2.3K0
为什么Python中的None is None is None == True
Reddit热议:为什么PyTorch比TensorFlow更快?
近日,Reddit 上有一个热帖:为什么 PyTorch 和 TensorFlow 一样快 (有时甚至比 TensorFlow 更快)?
新智元
2019/08/29
2.6K0
Reddit热议:为什么PyTorch比TensorFlow更快?
Reddit热议:为什么PyTorch比TensorFlow更快?
近日,Reddit 上有一个热帖:为什么 PyTorch 和 TensorFlow 一样快 (有时甚至比 TensorFlow 更快)?
代码医生工作室
2019/08/29
1.5K0
Reddit热议:为什么PyTorch比TensorFlow更快?
比pandas更快的库
是否发现pandas库在处理大量数据时速度较慢,并且希望程序运行得更快?当然,有一些使用pandas的最佳实践(如矢量化等)。本文讨论的内容将代码运行得更快,甚至超过采用最佳实践。
fanjy
2022/11/16
1.5K0
【玩转GPU】不懂就问,为什么GPU比CPU更快?
CPU的指令集通常被设计用来处理各种类型的任务,包括算术运算、逻辑运算、位操作等。由于其通用性,CPU的指令集比较复杂,执行各种任务的速度都不尽相同。此外,CPU还需要进行大量的控制和状态转换,因此在某些情况下,它的效率并不高。
程序员晚枫
2023/06/24
2K0
【玩转GPU】不懂就问,为什么GPU比CPU更快?
比原生更快:在 Linux 内核中运行 WebAssembly
过去的几个月间,我们尝试了各种方法来给 Wasmer WebAssembly 运行环境提速。这些方法包括缓存编译后的代码、实现不同等级的编译后端(Singlepass/Cranelift/LLVM)等,也都取得了不错的效果。
MikeLoveRust
2019/07/09
4.6K0
比原生更快:在 Linux 内核中运行 WebAssembly
为什么C代码比Python代码运行得更快?
Guido Van Rossum开发了Python,这是最著名的编程语言之一。Python 因其清晰的语法和简单的代码而在开发人员中很受欢迎,即使对于新手也是如此。对于那些刚刚开始编程职业生涯的人来说,学习Python是非常有利的。他们可以使用 Python 编程培训、博客、视频、模块和数千种其他资源来了解这种流行语言的各个方面。完成后,您将能够进行现代开发活动,例如GUI开发,网页设计,系统管理,复杂的金融交易或计算,数据科学,可视化等等。
很酷的站长
2023/02/20
1.4K0
为什么C代码比Python代码运行得更快?
比读写锁更快的 StampedLock
我们先回顾上一篇 ReentrantReadWriteLock 读写锁,为什么有了 ReentrantReadWriteLock,还要引入 StampLock?
码哥字节
2020/03/24
9110
PySpark|比RDD更快的DataFrame
DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表。如果你了解过pandas中的DataFrame,千万不要把二者混为一谈,二者从工作方式到内存缓存都是不同的。
数据山谷
2020/11/09
2.2K0
PySpark|比RDD更快的DataFrame
不要给<a>设置outline:none
outline属性有什么作用     原文链接 a{outline:none} do not do it     当用户使用tab键进行链接切换时,该属性会在当前选中的链接(获得焦点)使用该属性,一般来说是虚线框 的长方形。这对于没有使用鼠标输入的用户而言尤其有用,它可以作为视觉反馈来告知用户当前的输入。所以说 如果设置outline属性为none,则对这些人来说将会是很差的用户体验。     给链接元素设置获得焦点属性是非常有必要的,对任何使用键盘来操作用户界面的模式,焦点指示器需可见。 为什么有些开发者
欲休
2018/03/15
1.9K0
spfa(链式前向星)+dijkstra(链式前向星)
链式前向星可以存图, 它存图的方式是: 将 任 意 一 个 节 点 的 所 有 临 边 按 输 入 顺 序 依 次 连 接 起 来 将任意一个节点的所有临边按输入顺序依次连接起来 将任意一个节点的所有临边按输入顺序依次连接起来 然 后 头 节 点 ( 数 组 ) 存 的 是 最 后 一 个 临 边 的 地 址 然后头节点(数组)存的是最后一个临边的地址 然后头节点(数组)存的是最后一个临边的地址
全栈程序员站长
2022/11/17
4820
比 SpringBoot 更快,更轻,更小!
Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为Spring Boot太重。
民工哥
2022/10/27
1K0
比 SpringBoot更快,更轻,更小!
Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞生的JAVA微服务框架大多主打“轻量级”,主要还是因为Spring Boot太重。
搜云库技术团队
2022/02/17
8080
比 SpringBoot更快,更轻,更小!
ag 比 grep 更快的搜索工具
1) unix https://github.com/ggreer/the_silver_searcher
lukachen
2023/10/22
1760
Java比优化的Rust程序更快
_________ Danyal Mh 嗨,起初,我是一个Rust程序员,并为它写了一些项目和一个框架,在听说动态编译技术后,JVM对我有吸引力,我用Rust写了一个程序,为编译器设置了许多优化标志以获得最佳性能,并在java中写了实例。 在热身时间过后,我看到JVM的表现令人惊讶,它是一头野兽,在性能上可以击败Rust。 Rust结果:10,648 _ 6,678 _ 8,274 Java结果: 8,661 _ 9,608 _ 6,302 平均12次的基准。 Rust: 9,948Java:8,693
IT大咖说
2022/03/04
7580
python代码为什么在函数中运行更快
不知道有没有人注意过同样的代码是否封装在函数里,运行速度是不同的。比如以下两个代码:
生信编程日常
2020/04/01
2.5K0
Python的is None vs ==None
想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:
Tyan
2020/05/26
2.2K0
Python基础 | 受用终身的一颗星与两颗星
在平时的学习或者开发过程中,经常会遇到下面的函数定义形式,在形参定义列表中,可能会有一个星*,也可能会有两个星**,如下所示:
算法与编程之美
2019/08/06
8160
点击加载更多

相似问题

如何将评级栏设置为最低一颗星?

517

为什么A比Dijkstra快

11

Server:为什么SELECT * INTO比SELECT *更快(网络除外)

11

为什么Dijkstra + priority_queue比Dijkstra +队列性能最差?

123

乌龟图形,画一颗星?

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文