XmlDocument doc = new XmlDocument(); // 声明xml文档对象
doc.Load("xml文件名"); // 装载xml文件
XmlNodeList nods = doc.SelectNodes("information/data"); // 获取所有的data节点集合
foreach(XmlNode nodData in nods) // 遍历data节点集合
{
XmlNode nodValue;
nodValue = nodData.SelectSingleNode("playTime"); // 取得playTime节点
// nodValue.innerText 即为playTime节点内的值
nodValue = nodData.selectSingleNode("message"); // 取得message节点
// nodValue.Attributes["fontsize"].Value 即为fontsize属性的值
// nodValue.Attributes["color"].Value 为color属性的值
// nodValue.Attributes["mode"].Value 为mode属性的值
nodValue = nodData.SelectSingleNode("times"); // 取得times节点
// nodValue.innerText 即为times节点内的值
}
1:每取一次,实例一个结构,然后赋值,在将这个结构放到一个ARR数组里面
2:定义一个多维数组来存放取出来的值
哪个方案比较好?
不然的话是不是要用一个i++来决定插入到哪个ARRAYLIST里面?
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument(); //声明xml文档对象
doc.Load("D:/VSProject/ReadXmlTest/ReadXmlTest/XmlFile/XMLFileTest.xml"); //读取xml文件
XmlNodeList xmlnodes = doc.SelectNodes("information/data"); //获取所有data节点的集合
foreach (XmlNode xmlnode in xmlnodes)
{
//int i = 0;
XmlNode nodValue;
nodValue = xmlnode.SelectSingleNode("playTime");
Console.WriteLine("playTime节点值为:"+nodValue.InnerText+"\r");
nodValue = xmlnode.SelectSingleNode("message");
Console.WriteLine("message节点值为:"+nodValue.InnerText+"\r");
Console.WriteLine("message节点属性为:\r");
Console.WriteLine("fontsize=" + nodValue.Attributes["fontsize"].Value + "\r");
Console.WriteLine("color=" + nodValue.Attributes["color"].Value + "\r");
Console.WriteLine("mode=" + nodValue.Attributes["mode"].Value + "\r");
nodValue = xmlnode.SelectSingleNode("times");
Console.WriteLine("times节点值为:" + nodValue.InnerText);
}
Console.ReadKey();
}这样可以将输出的值放入数组!当节点改变时就将节点数加一,这样就可以判断是第几个节点了!
这样显示出来的FORM2可以拖动大小,有什么办法能让它不能拖动大小吗?
而且这样使用FORM2需要使用using WindowsApplication2;命名空间,一个FORM一次,有一次性全部申明的吗?
我需要用CATCH来捕捉很多种错误,然后在设一个无参数的CATCH来捕捉未知的异常,但是如果之前有CATCH捕捉到了异常,那么后面的那个无参数的又会捕捉一次,如何只捕捉一次?