C#怎么修改XML元素的内容?
我想通过运行前台的配置程序修改XML文件的内容达到存储数据库连接字符串的目的我的XML文件是这样的其实就是app.config<?xmlversion="1.0"enco...
我想通过运行前台的配置程序 修改XML文件的内容 达到存储数据库连接字符串的目的 我的XML文件是这样的 其实就是app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSetings>
<server></server>
<database></database>
<uid></uid>
<pwd></pwd>
</appSetings>
</configuration>
下边这些元素的内容我空着 在用户进行前台配置的时候写入元素内容
不知道我称<server></server>中间的部分为元素的内容对不对 书上是这样说的 呵呵
<server></server>
<database></database>
<uid></uid>
<pwd></pwd>
用户在前台的各文本框中写入数据库服务器名称、数据库名称等项后 点保存
能否把值传给XML文件中各元素呢
怎么实现呢 能否把关键代码提供一下 谢谢了 展开
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSetings>
<server></server>
<database></database>
<uid></uid>
<pwd></pwd>
</appSetings>
</configuration>
下边这些元素的内容我空着 在用户进行前台配置的时候写入元素内容
不知道我称<server></server>中间的部分为元素的内容对不对 书上是这样说的 呵呵
<server></server>
<database></database>
<uid></uid>
<pwd></pwd>
用户在前台的各文本框中写入数据库服务器名称、数据库名称等项后 点保存
能否把值传给XML文件中各元素呢
怎么实现呢 能否把关键代码提供一下 谢谢了 展开
4个回答
展开全部
XmlDocument xml = new XmlDocument();
xml.load("这里是你放XML文件的路径");
XmlNode node = xml.SelectSingleNode("configuration");// 获取configuration节点
XmlNodeList nodeList = xml.SelectSigle("configuration").Childnodes;//获取configuration的子节点
foreach(XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement) xn;//将子节点类型转换为XmlElement
XmlNodeList xo = xe.ChildNodes;//继续获取xe子节点
foreach(XmlNode xl in xo)
{
XmlElement xx = (XmlElement) xl;//将子节点类型转换为XmlElement
if(xx.Name==server)
{
xx.InnerText = ..//这里是你要配置元素server的内容
}
同理if(xx.Name==database)
{
...
}
.
.
}
}
xml.Save("这里是你放XML文件的路径");
xml.load("这里是你放XML文件的路径");
XmlNode node = xml.SelectSingleNode("configuration");// 获取configuration节点
XmlNodeList nodeList = xml.SelectSigle("configuration").Childnodes;//获取configuration的子节点
foreach(XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement) xn;//将子节点类型转换为XmlElement
XmlNodeList xo = xe.ChildNodes;//继续获取xe子节点
foreach(XmlNode xl in xo)
{
XmlElement xx = (XmlElement) xl;//将子节点类型转换为XmlElement
if(xx.Name==server)
{
xx.InnerText = ..//这里是你要配置元素server的内容
}
同理if(xx.Name==database)
{
...
}
.
.
}
}
xml.Save("这里是你放XML文件的路径");
展开全部
可以实现的:try
{
XmlDocument doc = new XmlDocument();
doc.Load("conf.xml");
XmlNodeList xnl = doc.GetElementsByTagName("Parameters");
foreach (XmlNode node in xnl)
{
if (node.ChildNodes[0].InnerText == this.cmbButton.Text)
{
node.ChildNodes[1].InnerText = this.txtPath.Text;
doc.Save("conf.xml");
MessageBox.Show("修改成功!", "提示");
break;
}
}
}
catch
{
return;
}
这是实例,希望对你有帮助。要还是不会 可以HI我
{
XmlDocument doc = new XmlDocument();
doc.Load("conf.xml");
XmlNodeList xnl = doc.GetElementsByTagName("Parameters");
foreach (XmlNode node in xnl)
{
if (node.ChildNodes[0].InnerText == this.cmbButton.Text)
{
node.ChildNodes[1].InnerText = this.txtPath.Text;
doc.Save("conf.xml");
MessageBox.Show("修改成功!", "提示");
break;
}
}
}
catch
{
return;
}
这是实例,希望对你有帮助。要还是不会 可以HI我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用你的<server></server>来实现
要用<add key="DatabaseType" value="MSSQL"/> 类似的语句
关于怎么用程序修改XML文件内容,网上资源甚多。
给点简单代码供你参考, VB代码
Public Sub SetAppsettingDatabaseType(ByVal type As String)
Dim absolutePath = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()).ToString
Dim mappath As String = absolutePath & "\web.config"
Dim xmlDoc As New XmlDocument
xmlDoc.Load(mappath)
Dim xnl As XmlNodeList = xmlDoc.SelectSingleNode("descendant::configuration/appSettings").ChildNodes
For Each xn As XmlNode In xnl
Dim xe As XmlElement = CType(xn, XmlElement)
If xe.GetAttribute("key") = "DatabaseType" Then
xe.SetAttribute("value", type)
End If
Next
xmlDoc.Save(mappath)
End Sub
要用<add key="DatabaseType" value="MSSQL"/> 类似的语句
关于怎么用程序修改XML文件内容,网上资源甚多。
给点简单代码供你参考, VB代码
Public Sub SetAppsettingDatabaseType(ByVal type As String)
Dim absolutePath = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()).ToString
Dim mappath As String = absolutePath & "\web.config"
Dim xmlDoc As New XmlDocument
xmlDoc.Load(mappath)
Dim xnl As XmlNodeList = xmlDoc.SelectSingleNode("descendant::configuration/appSettings").ChildNodes
For Each xn As XmlNode In xnl
Dim xe As XmlElement = CType(xn, XmlElement)
If xe.GetAttribute("key") = "DatabaseType" Then
xe.SetAttribute("value", type)
End If
Next
xmlDoc.Save(mappath)
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DataSet dbInfo = new DataSet();
dbInfo.Tables.Add("dbConnection");
dbInfo.Tables["dbConnection"].Columns.Add("server");
dbInfo.Tables["dbConnection"].Columns.Add("database");
dbInfo.Tables["dbConnection"].Columns.Add("uid");
dbInfo.Tables["dbConnection"].Columns.Add("pwd");
System.Data.DataRow dr = dbInfo.Tables["dbConnection"].NewRow();
dr[0] = txtServer.Text;
dr[1] = txtDB.Text;
dr[2] = txtID.Text;
dr[3] = txtPWD.Text;
dbInfo.Tables[0].Rows.Add(dr);
dbInfo.WriteXml("db.xml", XmlWriteMode.IgnoreSchema);
dbInfo.Tables.Add("dbConnection");
dbInfo.Tables["dbConnection"].Columns.Add("server");
dbInfo.Tables["dbConnection"].Columns.Add("database");
dbInfo.Tables["dbConnection"].Columns.Add("uid");
dbInfo.Tables["dbConnection"].Columns.Add("pwd");
System.Data.DataRow dr = dbInfo.Tables["dbConnection"].NewRow();
dr[0] = txtServer.Text;
dr[1] = txtDB.Text;
dr[2] = txtID.Text;
dr[3] = txtPWD.Text;
dbInfo.Tables[0].Rows.Add(dr);
dbInfo.WriteXml("db.xml", XmlWriteMode.IgnoreSchema);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询