先给出xml文件样例 此时我们想通过DataSet读取xml文件中的<three>节点的数据集,这时我们怎么做?
<?
xml version
=
"
1.0
"
encoding
=
"
gb2312
"
?>
< Config >
< one > 1 </ one >
< two > 3 </ two >
< three >
< four ID = " 1 " Name = " 1 " />
< four ID = " 2 " Name = " 2 " />
< four ID = " 3 " Name = " 3 " />
< three >
</ Config >
< Config >
< one > 1 </ one >
< two > 3 </ two >
< three >
< four ID = " 1 " Name = " 1 " />
< four ID = " 2 " Name = " 2 " />
< four ID = " 3 " Name = " 3 " />
< three >
</ Config >
先看DataSet.ReadXml(XmlReader reader)方法。此时我们只知道要传递一个xmlReader,其实还可以传递XmlNodeReader 。
不难理解:public class XmlNodeReader : XmlReader, IXmlNamespaceResolver 是xmlReader的子类,这样就得出我们读取节点的数据集方法!
XmlDocument xd
=
new
XmlDocument();
xd.Load(file);
XmlNodeList xnl = xd.GetElementsByTagName( " three " );
if (xnl.Count > 0 )
{
XmlNode xn = xnl.Item( 0 );
XmlNodeReader xnr = new XmlNodeReader(xn);
DataSet dataSet = new DataSet();
dataSet.ReadXml(xnr);
}
xd.Load(file);
XmlNodeList xnl = xd.GetElementsByTagName( " three " );
if (xnl.Count > 0 )
{
XmlNode xn = xnl.Item( 0 );
XmlNodeReader xnr = new XmlNodeReader(xn);
DataSet dataSet = new DataSet();
dataSet.ReadXml(xnr);
}
这样即将xml节点数据添加到DataSet数据集中!