2016-11-29 3 views
-1

У меня есть следующий XML:Extract в зависимости от двух других

<response> 
    <result-code fatal="false">0</result-code> 
    <lgt from="100" lgt="5.37828" to="644"/> 
    <lgt from="100" lgt="354.634640124" to="756"/> 
</response> 

Как найти и разобрать значение LGT атрибут в зависимости от от и значению атрибута с помощью JavaScript?

+0

, пожалуйста, объясните вопрос еще немного ... что вы ожидаете в результате? –

+0

@ jaromanda-x, XML может содержать гораздо больше записей, чем в примере. Мне нужно найти и проанализировать атрибут lgt в зависимости от двух других: от и до значения атрибутов. Эти значения должны быть установлены как параметры. – Nemesis

+0

'Мне нужно найти andparse атрибут lgt в зависимости от двух других: от и до атрибутов value' - вы уже сказали это - я надеялся, что вы могли бы объяснить, учитывая образец ввода, который у вас есть в вопросе **, какой результат должен на самом деле BE ** –

ответ

2

, во-первых, разобрать строку XML в xmlDoc (предполагается, что вы не используете XMLHttpRequest responseXML - пропустить преобразование в этом случае)

var str = '<response><result-code fatal="false">0</result-code><lgt from="100" lgt="5.37828" to="644"/><lgt from="100" lgt="354.634640124" to="756"/></response>'; 

var xmlDoc = (new DOMParser()).parseFromString(str, "text/xml"); 

по крайней мере, в firefox/chrome вы можете использовать следующее:

function parseLGT(from, to) { 
    var x = xmlDoc.querySelector('lgt[from="' + from + '"][to="' + to + '"]'); 
    return x && x.getAttribute('lgt') 
}; 
console.log(parseLGT(100,644)); 

IE/Edge - я не тестировал

+0

Спасибо. Это именно то, чего я хотел. – Nemesis

0

Вы можете разобрать, как это:

var parser = new DOMParser(); 
    var xmlDoc = parser.parseFromString('<response><result-code fatal="false">0</result-code><lgt from="100" lgt="5.37828" to="644"/><lgt from="100" lgt="354.634640124" to="756"/></response>', "text/xml"); 

    // your condition goes here from/to 

    if (parseInt(xmlDoc.getElementsByTagName("lgt")[0].getAttribute('to')) < 700) { 
    xmlDoc.getElementsByTagName("lgt")[0].getAttribute('lgt'); 
    } 
Смежные вопросы