要点:获取到要操作的XML文件地址,两种方法:server.mappath("FileName.xml"),appdomain...
获取到子节点,两种方法:mydoc.SelectSingleNode("config/sql/meter");
private XmlNode GetDataSourceInfo(XmlNode node, string reportName)
{
XmlNodeList node1 = node.SelectNodes("sqlsource");
if (node1 == null)
{
throw new XmlException("Can't find DataSource Node");
}
foreach (XmlNode _node in node1)
{
XmlNodeList list1 = _node.SelectNodes("*"); ;
foreach (XmlNode node2 in list1)
{
string text1;
if ((text1 = node2.Name) == null)
{
continue;
}
text1 = string.IsInterned(text1);
if (text1 == "reportName" && node2.InnerText == reportName)
{
return _node;
}
}
}
return null;
}
另附参考网上资料:
将一个XmlDocument对象绑定到DataSet中以便将它绑定到控件上。
by Dan Wahlin
数据绑定是.NET平台上的一个强大功能,它能使你将不同的数据源绑定到DataGrid、DataList和Repeater控件上。将DataTable、ArrayList或者Hashtable这类数据源绑定到控件上是非常容易的,但你可能经常需要将它们绑定到一个XmlDocument上。这种情况尤其体现在你使用的组件返回的是一个XmlDocument而不是来自某个方法的一个DataSet时。
虽然由于XmlDocument对象不支持IList等接口而使你无法直接将它绑定到控件上,但是实现绑定并不复杂。事实上,你只需编写几行代码便可将它绑定到一个DataSet中,然后通过DataSet将它绑定到其他控件上。
它的诀窍在于使用了System.Xml命名空间下的XmlNodeReader类。这个特定的类是从XmlReader中继承而来的,而且它能够将XmlDocument导入到一个DataSet的ReadXml()方法中。之后你便可以将这个DataSet绑定到各类控件中了。XmlNodeReader负责将XML数据从XmlDocument中的某个特定节点中导出来。数据流开始的节点会被输送到XmlNodeReader的构造器中:
[C#] public XmlNodeReader(
XmlNode node
);
[VB.NET]
Public Sub New( _
ByVal node As XmlNode _
)
XmlDocument的根元素(引用自DocumentElement属性)可以被传入XmlNodeReader的构造器中以防整个XmlDocument需要被转化为XML数据流。以下代码说明如何通过XmlNodeReader类来将一个XmlDocument转化为一个DataSet(DataSet中的一个DataTable会被绑定到一个DataGrid服务器控件中):
private void Page_Load(object sender,
System.EventArgs e) {
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("Orders.xml"));
XmlNodeReader reader = new XmlNodeReader(doc);
DataSet ds = new DataSet();
ds.ReadXml(reader);
reader.Close();
dg.DataSource = ds.Tables[0].DefaultView;
dg.DataBind();
}
读取节点中的一个属性
XmlDocument doc=new XmlDocument();
doc.Load("config.xml");
XmlNode xnuser=doc.SelectSingleNode("userdata");
string flag=xnuser.Attributes["createuser"].InnerText;
读取节点中的值
XmlDocument doc=new XmlDocument();
doc.Load("config.xml");
XmlNode xnserver = doc.SelectSingleNode("userdata/dataconnection/server");
修改节点的属性
XmlDocument doc=new XmlDocument();
doc.Load("config.xml");
XmlNode xnuser=doc.SelectSingleNode("userdata");
xnuser.Attributes["createuser"].InnerText="false";
doc.Save("config.xml");
追加节点
XmlDocument doc = new XmlDocument();
XmlTextReader reader = new XmlTextReader("config.xml");
doc.Load("config.xml");
XmlElement root = doc.DocumentElement; // 获取根节点
XmlElement tagMessage = doc.CreateElement("net");
XmlElement tagText = doc.CreateElement("name");
tagText.InnerText = netname;
tagMessage.AppendChild(tagText); // 追加到 xml 文本的最后面
root.AppendChild(tagMessage);
reader.Close(); // 关闭 XmlTextReader
doc.Save("config.xml"); // 保存 xml 文件