这应该很简单,但出于某种原因,我似乎无法让它发挥作用; 所以我有一个XML文件如下:
<board>
<version>1</version>
<r>
<c>
<tile>g</tile>
</c>
<c>
<tile>B</tile>
</c>
</r>
<r>
<c>
<tile>C</tile>
</c>
<c>
<tile>D</tile>
</c>
</r>
</board>
还有一些像:
function get_cversion(){
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "board.XML", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var mytext = 0
var x=xmlDoc.getElementsByTagName("version");
mytext = (x[0].childNodes[0].nodeValue);
mytext += "";
document.frmOne.input1.value = ""+mytext;
}
最后,我在页面上有一个表格,如下所示:
<FORM NAME = frmOne>
1val: <INPUT TYPE = Text NAME = input1 SIZE = 4 value ="">
<p>
<Input Type = Button NAME = b1 VALUE = "Save val" onClick = update_XX()>
<p>
<Input Type = Button NAME = b2 VALUE = "WOOOOO" onClick = get_cversion()>
</FORM>
我在这整个XML游戏中仍然很陌生。我知道我必须遗漏一些非常明显的东西,但我不能看到它,任何帮助都会非常感激。
感谢。
答案 0 :(得分:3)
您可能希望在处理XML之前检查请求的状态。你的代码应该是这样的,
function get_cversion(){
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "board.XML", false);
xmlhttp.send();
if(xmlhttp.status == 200) {
var xmlDoc = xmlhttp.responseXML;
var mytext = 0
var x=xmlDoc.getElementsByTagName("version");
mytext = (x[0].childNodes[0].nodeValue);
mytext += "";
document.frmOne.input1.value = ""+mytext;
}
}