javascript - HTTP Request JS - 如何从列表中提取数字,将它们保存到变量中并使用它们进行进一步处理?

标签 javascript arrays http meteor xmlhttprequest

我已经搜索过该主题,但找不到适合我的答案。

我通过执行 HTTP Get 请求从外部服务器收到答案。服务器返回一个包含多个数字的列表,我需要对其进行进一步处理。替换我不需要的信息后,列表如下所示:

  <int>123</int>
  <int>987</int>
  <int>7536</int>
  <int>879812</int>
  <int>5697231</int>

问题是列表CAN看起来像这样。服务器答案也可能如下所示:

<int>189977</int>
<int>7897</int>
<int>77</int>

或者就像:

<int>6</int>

你看,我不知道我会收到多少个号码作为回复,甚至不知道单个号码有多长。

每个数字代表一个结果,这对于执行 HTTP 请求的用户很重要。更准确地说,这些数字是来自其他站点(请求发送到的服务器)的搜索链接的一部分。

我的目的是,在用户提出请求后,他应该被重定向到一个页面,其中显示内部带有正确数字的链接,以便用户可以单击链接找到合适的结果。

我的建议是首先消除列表中的“<int>”和“</int>,然后将每个数字保存到诸如 Var 或ReactiveVar 并使用它们来渲染该页面上的链接

我能够将数字保存到 session 变量中(我正在使用 Meteor)并将它们呈现在页面上,但这并不是我真正想要的。不幸的是,我不知道如何执行其他事情......

有人知道如何实现这一目标吗?我将非常感谢任何有帮助的事情!

谢谢。

最佳答案

如果值已经在 XML 中,您可以使用 DOM 解析器来检索这些值。

// Add a <root> element so the XML can be parsed properly
const xml = '<root><int>123</int>' +
  '<int>987</int>' +
  '<int>7536</int>' +
  '<int>879812</int>' +
  '<int>5697231</int></root>';

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml,'text/xml');

const intElements = xmlDoc.getElementsByTagName('int');

let ints = [];

for (const intElement of intElements) {
  // Use parseInt() to convert the strings to numbers
  ints.push(parseInt(intElement.childNodes[0].nodeValue, 10));
}

// Use ints as you would like    
document.getElementById('result').innerHTML = JSON.stringify(ints);

关于javascript - HTTP Request JS - 如何从列表中提取数字,将它们保存到变量中并使用它们进行进一步处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44278295/

相关文章:

c# - Array.ToString() 返回 System.Char[] c#

javascript - 导航跟随滚动

javascript - HTML5 EventSource 发送多个请求

javascript - 保留 pushstate 的原始 url

javascript - 我如何从另一个文件vue添加图像

arrays - 从 Ruby 数组中删除次要项

javascript - 使用 Backbone.Router 记住带有 url hash 的复杂页面状态

c# - 定义动态数组

java - 使用 Struts2 从服务器接收到重复的 header

python - HTTP 错误 403 : Forbidden urlib2 Python 2. 7