使用ajax比较两个xml值

时间:2012-06-19 16:19:23

标签: javascript html xml ajax

好的,所以我正试图通过微芯片的Pic-web来监控和控制某些东西。除了一件事,我设法对它进行编程。我需要比较它给我的两个温度,如果其中一个比另一个小,那么继电器需要激活,如果它更大或相等,则必须激活另一个继电器。根据我的理解,Pic-web更新了一个xml文件(status.xml),然后网站(使用ajax)从那里获取值并在网页上显示它们。

XML文件看起来像这样

<response>
<temp0>~temp~</temp0>
<temp2>~tempc~</temp2>
</response

我用来获取网页中的值的ajax代码

document.getElementById('temp0').innerHTML = getXMLValue(xmlData, 'temp0');
document.getElementById('temp2').innerHTML = getXMLValue(xmlData, 'temp2');

要显示它们,我使用

<span id="temp0"style="font-weight:normal">?</span>
<span id="temp2"style="font-weight:normal">?</span>

我需要做的就是将temp0与temp2进行比较

    var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
    var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

    if( temp0 < temp2 ) 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
    } 
    else 
    {
        document.getElementById('temp3').innerHTML = '<font color="#00FFFF">OFF</font>';

}

我只需添加<span id="temp3">?</span>即可显示结果

我说错了吗?

4 个答案:

答案 0 :(得分:1)

if(getXMLValue(xmlData, 'temp0') < 'temp2')

'temp0'不是document.getElementById('temp0')的值,它只是一个包含'temp0'的字符串。

您需要将此值分配给变量并将其转换为字符串中的数字:

var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

然后使用:

if(temp0 < temp2)

答案 1 :(得分:0)

此行看起来不正确......

if(getXMLValue(xmlData, 'temp0') < 'temp2')

应该是......?

if(getXMLValue(xmlData, 'temp0') < getXMLValue(xmlData, 'temp2'))

除非getXMLValue返回多种变体,否则你需要在比较之前转换它

答案 2 :(得分:0)

这样的事情:

var temp0 = parseInt(getXMLValue(xmlData, 'temp0'))
  , temp2 = parseInt(getXMLValue(xmlData, 'temp2'));

if( temp0 < temp2 ) {
    ...
} else {
    ...
}

答案 3 :(得分:0)

// Compare the two temperatures
var temp0 = parseFloat(document.getElementById('temp0').innerHTML)
var temp2 = parseFloat(document.getElementById('temp2').innerHTML)

if( temp0 < temp2 ) {
    document.getElementById('temp3').innerHTML = '<font color="#00FF00">ON</font>';
} else {
    document.getElementById('temp3').innerHTML = '<font color="#FF0000">OFF</font>';
}

如果temp2&gt;这将显示ON。 temp0

如果temp0&lt;

和OFF TEMP2

感谢大家的支持