急:xml文件操作

silencepen 2010-07-16 01:40:31
这是XML文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<SQlString>
<Sqlserver></Sqlserver>
<Sqldb></Sqldb>
<Sqluser></SqlUser>
<Sqlpwd></Sqlpwd>
</SQlString>
下面是程序代码:
private void smtButton_Click(object sender, EventArgs e)
{
XmlDocument xmldoc = new XmlDocument();
string XMLPath = "XMLSql.xml";Path.Combine(Application.StartupPath,XMLPath);
xmldoc.Load(XMLPath);
XmlNodeList nodeList = xmldoc.SelectSingleNode("SQLString").ChildNodes;//获取Employees节点的所有子节点
foreach(XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="Sqlserver")//如果找到
{
xe2.InnerText=textBox2.Text;//则修改
break;//找到退出来就可以了
}
}

}

目的:四个xml子元素是用于保存数据库连接字符串的四个关键词,用户通过四个textbox值输入分别赋值给xml的四个子元素。然后通过这四个子元素读取写成数据库连接字符串。
解决问题:
1、系统提示这句有问题 XmlElement xe = (XmlElement)xn;
无法将类型为“System.Xml.XmlComment”的对象强制转换为类型“System.Xml.XmlElement”。
2、这样写的方式是否正确。
有没有哪位兄弟知道解决的
有没有哪位兄弟知道解决的,请帮忙,请详细给出代码
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
silencepen 2010-07-16
  • 打赏
  • 举报
回复
有的,你有QQ吗
Jellyfancy 2010-07-16
  • 打赏
  • 举报
回复
对了,你的xml有问题 <Sqluser></SqlUser>
还有如果要修改xml的值,就不能用foreach遍历了
silencepen 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gs0038 的回复:]
C# code

//还有种使用 DataSet 的ReadXml
private void smtButton_Click(object sender, EventArgs e)
{

string XMLPath = "XMLSql.xml";
Path.Combine(Application.StartupPath,XMLPath);
……
[/Quote]
兄弟,不用要读xml,而是要将textbox值赋值给xml节点
silencepen 2010-07-16
  • 打赏
  • 举报
回复
1楼的兄弟能否具体一点呢?
能把代码详细写一下,或者做详细说明一下
gs0038 2010-07-16
  • 打赏
  • 举报
回复

//还有种使用 DataSet 的ReadXml
private void smtButton_Click(object sender, EventArgs e)
{

string XMLPath = "XMLSql.xml";
Path.Combine(Application.StartupPath,XMLPath);
DataSet _ds=new DataSet();
_ds.ReadXml(XMLPath);
DataTable _dt=_ds.Tables[0];
textBox2.Text=_dt.Rows[0]["Sqlserver"].ToString();
}

兔子-顾问 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gs0038 的回复:]
为什么要转换呀,
XmlNode 这个类型不是一样也能用吗?
[/Quote]
+1
不转换直接用
Jellyfancy 2010-07-16
  • 打赏
  • 举报
回复
XmlElement xe = (XmlElement)xn;这句没错
兔子-顾问 2010-07-16
  • 打赏
  • 举报
回复
node是基类,element是子类。基类未必能转换为子类的。
gs0038 2010-07-16
  • 打赏
  • 举报
回复
为什么要转换呀,
XmlNode 这个类型不是一样也能用吗?
yinuo1011 2010-07-16
  • 打赏
  • 举报
回复
用Linq to xml 多简单
XDocument xdoc = XDocument.Load(XMLPath);
string sqlserver = xdoc.Element("SQlString").Element("Sqlserver").Value

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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