根据其他两个提取属性值

时间:2016-11-29 07:44:27

标签: javascript xml

我有以下xml:

<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>

如何使用javascript根据属性的值查找和解析 lgt 属性值?

2 个答案:

答案 0 :(得分: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 - 我还没有测试过

答案 1 :(得分: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');
  }