无法将类型为“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"));
}



求高手解决
...全文
732 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
源码直接下载地址: https://pan.quark.cn/s/387d7c8f6289 在使用IE浏览器的过程中,偶尔会出现重置为默认配置操作未能顺利完成的现象。这种情况的发生可能源于多种因素,包括注册表项出现偏差、浏览器附加组件之间存在不兼容、操作系统授权设置不当或受到恶意程序影响等。针对这一挑战,我们可以通过一系列系统性的方法来逐一诊断和纠正。首先需要验证当前用户是否具备管理员级别的操作权限。在执行重置配置的操作时,必须确保IE浏览器是以管理员身份启动的。具体操作方式为,使用鼠标右键单击IE程序图标,并从弹出的菜单中选择“以管理员身份运行”这一选项。其次,应当检查是否存在恶意软件。恶意程序有时会非法修改浏览器的配置信息,从而阻碍重置过程的正常进行。用户可以借助Windows系统自带的Microsoft Safety Scanner进行检测,或者选择安装并使用第三方安全防护软件执行全面的系统扫描。紧接着,需要对浏览器的缓存数据以及Cookies文件进行清理。在IE浏览器界面中,通过访问“工具”菜单并选择“Internet选项”,然后在弹出的设置界面中,切换至“常规”标签页,并执行清除浏览历史记录的操作,此过程应包含Cookies和临时互联网文件。倘若上述步骤均未能解决问题,那么可以考虑禁用或移除那些可能引发冲突的浏览器附加组件。相关操作需要在“工具”菜单下找到并打开“管理加载项”,对可疑的插件进行禁用处理,并在浏览器重新启动后再次尝试执行重置操作。再者,修复IE浏览器相关的注册表配置也是至关重要的环节。注册表编辑器是一个功能强大的系统工具,任何不当的操作都可能导致严重的系统问题,因此在进行修改前必须创建系统还原点作为安全备份。用户可以通过按下“Win+R”组合...

62,271

社区成员

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

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

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

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