Мне нужно экстраполировать из строки, содержащей много повторяющихся тегов html, и экстраполировать только несколько, например:
<objid> 1234 </objid> ..... * other tags * ...... <name> myname </name> .. * other tags * .. <objid> 5678 </objid> .... * other tags * ....
Я хотел бы вставить только 1234 и мое имя и 5678 et c в одной строке.
var mySubString = responseString.substring(responseString.lastIndexOf("<objid>") +7, responseString.lastIndexOf("</objid>"));
, поэтому я пытаюсь получить данные с сайта, и он возвращает идентификатор, имя и статус, и я хотел бы напечатать строку следующим образом : 'object' + id1 + name1 + 'находится в состоянии' + "state1" + '\ n' + 'object' + id2 + name2 + 'находится в состоянии' + "state2" + '\ n' + et c .... он должен повторяться до конца строки html заканчивается
edit:
stato':function(){
var responseString = '';
var mythis=this;
//REM: Stores the result
var tResult = [];
https.get('https://'+ xxxxx +'/api/xxxxxxx?content=xxxxx&output=xml&columns=objid,status&count=10&&username=xxx'&passhash=xxx', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {responseString += d;
// var mySubString="";
var tFragment = document.createElement('div');
tFragment.innerHTML = responseString;
for(var i=0, j=tFragment.querySelectorAll('objid').length; i<j; i++){
tResult.push(
'Il sensore @objid./* @name.*/ è nello stato @state.'
.replace('@objid.', tFragment.querySelectorAll('objid')[i].textContent)
// .replace('@name.', tFragment.querySelectorAll('name')[i].textContent)
.replace('@status.', tFragment.querySelectorAll('status')[i].textContent)
)
};
});
res.on('end', function(res)
{
//const speechOutput = responseString;
console.log('==> Answering: ',tResult);
mythis.emit(':tell', tResult);
});
}).on('error', (e) => {
console.error(e);
});
},