c# xml ChildNodes
//将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。XmlDocumentxmlDoc=newXmlD...
//将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。
XmlDocument xmlDoc = new XmlDocument();
XmlNodeList nodeList = xmlDoc.SelectSingleNode("root").ChildNodes;//获取bookstore节点的所有子节点
if (nodeList != null)
{
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
break;//找到退出来就可以了
}
}
break;
}
}
}
xmlDoc.Save("bookstore.xml");//保存。
。
运行到if (nodeList != null)出现错误,未将对象引用设置到对象的实例。
我不明白是为什么? 展开
XmlDocument xmlDoc = new XmlDocument();
XmlNodeList nodeList = xmlDoc.SelectSingleNode("root").ChildNodes;//获取bookstore节点的所有子节点
if (nodeList != null)
{
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
break;//找到退出来就可以了
}
}
break;
}
}
}
xmlDoc.Save("bookstore.xml");//保存。
。
运行到if (nodeList != null)出现错误,未将对象引用设置到对象的实例。
我不明白是为什么? 展开
展开全部
我怀疑是这一句出错的:
XmlNodeList nodeList = xmlDoc.SelectSingleNode("root").ChildNodes;
你的XML文件根元素是root吗?会不会SelectSingleNode就已经返回null了?
顺便说一句,要看nodeList里面有没有内容,应判断其长度是否为0,而不是nodeList != null
XmlNodeList nodeList = xmlDoc.SelectSingleNode("root").ChildNodes;
你的XML文件根元素是root吗?会不会SelectSingleNode就已经返回null了?
顺便说一句,要看nodeList里面有没有内容,应判断其长度是否为0,而不是nodeList != null
追问
xml文件为 - 我是根节点 - CS从入门到精通 候捷 58.3 nodeList != null 改为了 if (nodeList.Count>0)但是还是出一样的错误
追答
咳咳,你的第一句和第二句之间是不是少了xmlDoc.Load("文件名")?
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("bookstore.xml");
foreach (XmlNode node in xmldoc.DocumentElement.ChildNodes)
{
if (node.Attributes != null && node.Attributes["genre"].Value == "李赞红")
{
node.Attributes["genre"].Value = "update李赞红";
node["author"].InnerText = "亚胜";
}
}
xmldoc.Save("bookstore.xml");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询