我已经搜索过该主题,但找不到适合我的答案。
我通过执行HTTP Get请求从外部服务器收到答复。服务器返回一个包含多个数字的列表,我需要进一步处理。在替换我不需要的信息之后,列表看起来像这样:
request.status()
问题是列表 CAN 看起来像这样。服务器答案也可能如下所示:
<int>123</int>
<int>987</int>
<int>7536</int>
<int>879812</int>
<int>5697231</int>
或者就像:
<int>189977</int>
<int>7897</int>
<int>77</int>
你知道,我不知道我会得到多少数字作为回应,甚至不知道单个数字有多长。
每个数字代表一个结果,这对于执行HTTP请求的用户很重要。更确切地说,这些数字是来自其他站点(发送请求的服务器)的搜索链接的一部分。
我的目的是在用户发出请求后,他应该被重定向到一个页面,其中显示内部正确数字的链接,以便用户可以点击链接以找到合适的结果。
我的建议是首先消除列表中的“<int>6</int>
”和“<int>
”,而不是其次保存每个数字比如Var或ReactiveVar,而不是使用它们来在该页面上呈现链接。
我能够将数字保存到会话变量(我正在使用Meteor)并在页面上呈现它们,但这不是我想要的。不幸的是,我不知道如何执行其他事情......
有人知道如何实现这一目标吗?我会非常感谢任何有用的东西!
感谢。
答案 0 :(得分:2)
如果值已经在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);