先给出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>
先看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);
}
这样即将xml节点数据添加到DataSet数据集中!