【问题标题】:Compare two xml values using ajax使用ajax比较两个xml值
【发布时间】:2012-06-21 17:46:15
【问题描述】:

好的,所以我正在尝试使用微芯片的 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>';

}

我只是添加&lt;span id="temp3"&gt;?&lt;/span&gt; 来显示结果

我说的对吗?

【问题讨论】:

    标签: javascript html xml ajax


    【解决方案1】:

    这行看起来不正确...

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

    应该是……?

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

    除非 getXMLValue 返回多个变量,否则您需要在比较之前对其进行转换

    【讨论】:

      【解决方案2】:
      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)
      

      【讨论】:

        【解决方案3】:

        这样的事情怎么样:

        var temp0 = parseInt(getXMLValue(xmlData, 'temp0'))
          , temp2 = parseInt(getXMLValue(xmlData, 'temp2'));
        
        if( temp0 < temp2 ) {
            ...
        } else {
            ...
        }
        

        【讨论】:

          【解决方案4】:
          // 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 > temp0 则显示 ON

          如果 temp0 则关闭

          感谢大家的支持

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-11-08
            • 2020-03-25
            • 2011-05-22
            • 1970-01-01
            • 2021-02-04
            相关资源
            最近更新 更多