<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<手机信息>
<手机>
<品牌 型号="dd">dd</品牌>
<部分技术参数>
<手机类型>翻盖</手机类型>
<兼容网络制式>
<网络制式>GSM 900</网络制式>
<网络制式>GSM 1800</网络制式>
</兼容网络制式>
<体积>
<长>1mm</长>
<宽>1mm</宽>
<厚>1mm</厚>
</体积>
<重量>1克</重量>
</部分技术参数>
<售价>1.00元</售价>
</手机>
</手机信息>其中的网络制式,我用checkboxlist 去判断是否存在,在checkboxlist的items事先放置四个值
部分代码
nodelist = doc.GetElementsByTagName("手机");
.....
(第72行) while(node.NextSibling.FirstChild!=null)
{
for (int i = 0; i < 3; i++)
{
if (cblNetwork.Items[i].Value == node.NextSibling .FirstChild .InnerText )
{
cblNetwork.Items[i].Selected = true;
node = node.NextSibling.FirstChild;
}
}
}
出现的错误
System.NullReferenceException: 未将对象引用设置到对象的实例。 在 WebApplication1.WebForm1.LoadRecord(Int32 index) 位置 e:\小来工作室\WebApplication1\WebForm1.aspx.cs:行号 72
<手机信息>
<手机>
<品牌 型号="dd">dd</品牌>
<部分技术参数>
<手机类型>翻盖</手机类型>
<兼容网络制式>
<网络制式>GSM 900</网络制式>
<网络制式>GSM 1800</网络制式>
</兼容网络制式>
<体积>
<长>1mm</长>
<宽>1mm</宽>
<厚>1mm</厚>
</体积>
<重量>1克</重量>
</部分技术参数>
<售价>1.00元</售价>
</手机>
</手机信息>其中的网络制式,我用checkboxlist 去判断是否存在,在checkboxlist的items事先放置四个值
部分代码
nodelist = doc.GetElementsByTagName("手机");
.....
(第72行) while(node.NextSibling.FirstChild!=null)
{
for (int i = 0; i < 3; i++)
{
if (cblNetwork.Items[i].Value == node.NextSibling .FirstChild .InnerText )
{
cblNetwork.Items[i].Selected = true;
node = node.NextSibling.FirstChild;
}
}
}
出现的错误
System.NullReferenceException: 未将对象引用设置到对象的实例。 在 WebApplication1.WebForm1.LoadRecord(Int32 index) 位置 e:\小来工作室\WebApplication1\WebForm1.aspx.cs:行号 72
node = node.NextSibling.FirstChild; 《《《这两行有问题
经过一次循环后,你这个node已经是<网络制式>GSM 900</网络制式>这个节点了再也没有node.NextSibling了,所以出错,修改一下循环方式,比如
node = nodelist[0].SelectSingleNode("部分技术参数/兼容网络制式")
foreach (Node n in node.Childs) <<<这里记不清了,自己去查一下
{
}