我已经搜索过该主题,但找不到适合我的答案。
我通过执行 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/