你会很快看到我不是程序员,只是在最后一刻踩到了帮助朋友的地方。使用XML文件,我们试图克服一个空字符串。
这是我的代码:
{
document.write("<tr><td align='left'><font color='#333333'>");
document.write(x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue);
document.write(x[i].getElementsByTagName("Party")[0].childNodes[0].nodeValue);
document.write("</font></td><td align='left'>");
document.write(x[i].getElementsByTagName("Vote")[0].childNodes[0].nodeValue);
document.write("</td><td align='right'>");
document.write(x[i].getElementsByTagName("Total")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
因为“Name”并不总是与“Name”相关联,所以当元素为空时脚本会停止。
在这个例子中,我该如何克服它?
我试过这个,没有任何运气:
daNode = x[i].getElementsByTagName("Party")[0];
if (daNode.childNodes.length) {
da = daNode.childNodes[0].nodeValue;
} else {
da = "none"
}
谢谢!
编辑以添加评论中的XML:
<xml>
<Election>
<Candidates>
<Candidate>
<Name>Max</Name>
<Party>Action</Party>
<Vote>42 votes</Vote>
<Total>10 %</Total>
</Candidate>
<Candidate>
<Name>John</Name>
<Party></Party>
<Vote>82 votes</Vote>
<Total>20 %</Total>
</Candidate>
<Candidate>
<Name>Simon</Name>
<Party>Action</Party>
<Vote>1 vote</Vote>
<Total>1 %</Total>
</Candidate>
</Candidates>
</Election>
</xml>
答案 0 :(得分:0)
<Party>
标记在.childNodes[0]
返回null,因此.nodeValue
处的错误。这是一个修复:
{
var partyNode = x[i].getElementsByTagName("Party")[0];
var party = partyNode.firstChild ? partyNode.firstChild.nodeValue : "none";
document.write("<tr><td align='left'><font color='#333333'>");
document.write(x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue);
document.write(party);
document.write("</font></td><td align='left'>");
document.write(x[i].getElementsByTagName("Vote")[0].childNodes[0].nodeValue);
document.write("</td><td align='right'>");
document.write(x[i].getElementsByTagName("Total")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}