<?xml version='1.0' encoding='UTF-8'?>
<result>
<a>
<b>1</b>
<c>xx</c>
</a>
<a>
<b>2</b>
<c></c>
</a>
<a>
<b>3</b>
<c>xx</c>
</a>
</result>
如上的xml解析到第二个<a></a>中的<c></c>由于c中没有值就报错没有对象了 解析代码如下
var xmlDoc = loadXML(data);
var elements = xmlDoc.getElementsByTagName("a");
var res="";
var ocr_rst="";
alert("elements.length="+elements.length);
for (var i = 0; i < elements.length; i++) {
ocr_rst = elements[i].getElementsByTagName("b")[0].firstChild.nodeValue;
alert(ocr_rst);
res=res+ocr_rst+"@";
alert(res);
}
var arr= new Array();
arr=res.split("@");
document.getElementById('number4').value = arr[0]+arr[1];
document.getElementById('project4').value = arr[2];
var xmlDoc = $(data);
xmlDoc.find("a").each(function(i,o){
alert(i);//你会开f12的话写成console.log(o)也行
alert(o);
});
比自己写简单。本回答被提问者采纳
具体怎么判断啊 if( elements[i].getElementsByTagName("b")[0]!=null){
} 这样吗?试了不对
undefined 也可能是这个
追问if(elements[i].getElementsByTagName("ocr_rst")[0]!=null ||elements[i].getElementsByTagName("ocr_rst")[0]==undefined){
。。 }缺少对象
elements[i].getElementsByTagName("ocr_rst")[0]!=undefined
追问还是缺少对象。。
追答你用浏览器看下那个是为空的elements[i]
这个开始我晕倒
。。没懂啊 ocr_rst = elements[i].getElementsByTagName("b")[0].firstChild.nodeValue; 浏览器调试工具报错在这一行
追答你还不会用浏览器测试?
本回答被网友采纳