我有一个简单的XML文件,如下所示:
<?xml version="1.0" ?>
<devices>
<device>
<name>Inside</name>
<value>67.662498</value>
</device>
<device>
<name>Outside</name>
<value>69.124992</value>
</device>
</devices>
我想使用JavaScript提取“Outside”的温度(值)。以下是我到目前为止的情况:
<script type="text/javascript">
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","data.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.getElementById("name").innerHTML=
xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
document.getElementById("value").innerHTML=
xmlDoc.getElementsByTagName("value")[0].childNodes[0].nodeValue;
</script>
当我在HTML文件中运行它时,它会将名称“Inside”及其温度值拉出而不是外部温度值。我只是希望能够运行它并将“69.124992”显示为值。我需要添加什么来解析此文件,以便它只查找名称为“Outside”的设备?
答案 0 :(得分:0)
您当前的实现只是第一次出现名称和值并显示值,而不是为什么不循环
var names = xml.getElementsByTagName('name');
for (var iDx = 0; iDx < names.length; iDx++) {
if (names[iDx].childNodes[0].nodeValue == 'Outside') {
jQuery('#name').text(names[iDx].childNodes[0].nodeValue);
jQuery('#value').text(xml.getElementsByTagName('value')[iDx].childNodes[0].nodeValue);
break;
}
}