首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#读取XML资料

2012-09-12 
C#读取XML文件我想读取如下的XML文件到内存,文件的树状结构是不定的,邮箱和关键字的对应关系可能是一对一,

C#读取XML文件
我想读取如下的XML文件到内存,文件的树状结构是不定的,邮箱和关键字的对应关系可能是一对一,一对多,多对一,多对多。
打算用ArryList11来保存group1节点下的Email字段
  用ArryList12来保存group1节点下的KeyWord字段
依此类推。
看了MSDN的帮助示例,还是不太会操作XML文件,大虾们能否给个思路?
谢谢了。

C# code
<?xml version="1.0" encoding="utf-8"?><Configuration>    <group>    <Email>xxx@163.com</Email>    <KeyWord>java</KeyWord>  </group>  <group>    <Email>xxx@163.com</Email>    <KeyWord>sql</KeyWord>    <KeyWord>数据库</KeyWord>    <KeyWord>存储过程</KeyWord>    <KeyWord>游标</KeyWord>  </group>  <group>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <KeyWord>求助</KeyWord>  </group>  <group>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <Email>xxx@163.com</Email>    <KeyWord>c#</KeyWord>    <KeyWord>C++</KeyWord>    <KeyWord>c</KeyWord>  </group></Configuration>





[解决办法]
C# code
 private void ReadXml()    {        ArrayList ArryList11 = new ArrayList();        ArrayList ArryList12 = new ArrayList();        //假设你的xml文件名为demo.xml确保路径正确        string xmlPath = Server.MapPath("demo.xml");        XmlDocument xmlDoc = new XmlDocument();        xmlDoc.Load(xmlPath);        XmlNodeList xnl = xmlDoc.SelectSingleNode("Configuration").ChildNodes;        foreach (XmlNode node in xnl)        {            foreach (XmlNode emailnode in node.SelectNodes("Email"))            {                ArryList11.Add(emailnode.InnerText);            }            foreach (XmlNode keywordnode in node.SelectNodes("KeyWord"))            {                ArryList12.Add(keywordnode.InnerText);            }        }    }
[解决办法]
(二). XML学习(Working with XML)

1.幻灯片课程

下载: http://www.cnblogs.com/Files/ChengKing/Working%20with%20XML(ppt).rar

2.示例代码

下载: http://www.cnblogs.com/Files/ChengKing/Working%20with%20XML(project).rar



详细请见:
http://blog.csdn.net/ChengKing/archive/2006/03/31/646363.aspx
[解决办法]
还是使用xml 凡序列化为实体 class 的方式比较易于维护和使用。
构造2个类代码很简单
C# code
public class Configuration    {            Collection<Group> groups = new Collection<Group>();        [XmlElement(ElementName = "group")]        public Collection<Group> Groups        {            get { return groups; }            set { groups = value; }        }    }        public class Group    {        Collection<string> email = new Collection<string>();        [XmlElement(ElementName = "Email")]        public Collection<string> Email        {            get { return email; }            set { email = value; }        }                Collection<string> keyWord = new Collection<string>();        [XmlElement(ElementName = "KeyWord")]        public Collection<string> KeyWord        {            get { return keyWord; }            set { keyWord = value; }        }            } 

热点排行