无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”。

qishutao888 2011-01-13 03:36:06
if (result == "del")
{
string id = Convert.ToString(Request.QueryString["id"]);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../Ch/swf/pic.xml"));
XmlNode root = xmlDoc.SelectSingleNode("folio");
XmlNodeList xnl = xmlDoc.SelectSingleNode("folio").ChildNodes;
for (int j = 0; j < xnl.Count; j++)
{
XmlNode xn = xnl.Item(j);
XmlElement xe = (XmlElement)xnl.Item(j); //这个报错
if(xe["ID"].InnerText == id.ToString())
{
root.RemoveChild(xe);
break;

}
}
xmlDoc.Save(Server.MapPath("../Ch/swf/pic.xml"));
}



求高手解决
...全文
637 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qishutao888 2011-01-13
  • 打赏
  • 举报
回复
Random ran = new Random();
int id = ran.Next(1000, 9999);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../Ch/swf/pic.xml"));
XmlNode root = xmlDoc.SelectSingleNode("folio");//查找<bcaster>
XmlElement xe1 = xmlDoc.CreateElement("image");//创建一个<item>节点



XmlElement xesub3 = xmlDoc.CreateElement("thumbnail"); //添加person节点的里的节点
xesub3.InnerText = Convert.ToString(Request.Form["thumbnail"]);
xe1.AppendChild(xesub3);


XmlElement xesub1 = xmlDoc.CreateElement("pic"); //添加person节点的里的节点
xesub1.InnerText = Convert.ToString(Request.Form["pic"]);
xe1.AppendChild(xesub1);

XmlElement xesub2 = xmlDoc.CreateElement("url");
xesub2.InnerText = Convert.ToString(Request.Form["url"]);
xe1.AppendChild(xesub2);

XmlElement xesub4 = xmlDoc.CreateElement("ID");
xesub4.InnerText = id.ToString();
xe1.AppendChild(xesub4);


//XmlElement xesub5 = xmlDoc.CreateElement("text_low");
//xesub5.InnerText = Convert.ToString(Request.Form["text_low"]);
//xe1.AppendChild(xesub5);

root.AppendChild(xe1);//添加到<bcaster>节点中
xmlDoc.Save(Server.MapPath("../Ch/swf/pic.xml"));


Alert.GoParent("flash-list.aspx");

}
else if (action == "edit")
{
string id = Convert.ToString(Request.QueryString["id"]);
Alert.Show(id.ToString());
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../Ch/swf/pic.xml"));
XmlNode root = xmlDoc.SelectSingleNode("folio");
XmlNodeList xnl = xmlDoc.SelectSingleNode("folio").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
if (xe["ID"].InnerText == id.ToString())
{
xe["thumbnail"].InnerText = Convert.ToString(Request.Form["thumbnail"]);
xe["pic"].InnerText = Convert.ToString(Request.Form["pic"]);
xe["url"].InnerText = Convert.ToString(Request.Form["url"]);
//xe.SetAttribute("itemtitle", "" + this.FlashText.Value + "");
}
}

xmlDoc.Save(Server.MapPath("../Ch/swf/pic.xml"));
Alert.GoParent("flash-list.aspx");
}

if (Convert.ToString(Request.QueryString["result"]) == "edit")
{

string id = Convert.ToString(Request.QueryString["id"]);
Alert.ShowAndGo(id.ToString() + "aaa", "flash-edit.aspx?result=edit&id=8294");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../Ch/swf/pic.xml"));
XmlNode root = xmlDoc.SelectSingleNode("folio");
XmlNodeList xnl = xmlDoc.SelectSingleNode("folio").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
if (xe["ID"].InnerText == id.ToString())
{
xe["thumbnail"].InnerText = Convert.ToString(Request.Form["thumbnail"]);
xe["pic"].InnerText = Convert.ToString(Request.Form["pic"]);
xe["url"].InnerText = Convert.ToString(Request.Form["url"]);
//xe.SetAttribute("itemtitle", "" + this.FlashText.Value + "");
}
}

xmlDoc.Save(Server.MapPath("../Ch/swf/pic.xml"));
Alert.GoParent("flash-list.aspx");
}


这是编辑的代码,显示那边删除就报那个错
qishutao888 2011-01-13
  • 打赏
  • 举报
回复
我这问题还是出在添加上,原先XML里面有的图片都能删除,我自己添加的图片就不能删除
vrhero 2011-01-13
  • 打赏
  • 举报
回复
if(xn is XmlElement){
...
}else if(xn is XmlComment){
...
qishutao888 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jayinit 的回复:]
用 as
[/Quote]

XmlElement xe =xnl.Item(j) as XmlElement ; ??/这样貌似也不行
qishutao888 2011-01-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xray2005 的回复:]
修改为:
for (int j = 0; j < xnl.Count; j++)
{
XmlNode xn = xnl[j];
if(xe["ID"].InnerText == id.ToString())
{
root.RemoveChild(xn);
break;

}
}
[/Quote]

xe怎么来的。。。加上那句还是报那句错
xray2005 2011-01-13
  • 打赏
  • 举报
回复
修改为:
for (int j = 0; j < xnl.Count; j++)
{
XmlNode xn = xnl[j];
if(xe["ID"].InnerText == id.ToString())
{
root.RemoveChild(xn);
break;

}
}
  • 打赏
  • 举报
回复
用 as

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧