各位大侠 像这种格式的xml文件怎么读取啊<?xml version="1.0" encoding="gb2312"?>
<DATASET>
<TITLE>湘潭市烟草公司2012年卷烟经营简报</TITLE>
<SUBTITLE>2012年(截止到2012年09月18日的卷烟累计实现销售数据,不含访销数量)</SUBTITLE>
<TEXT>
卷烟本期销量箱,本期销额万元,销售均价0.00元/箱,本期期末库存量箱。
</TEXT>
<SUBTITLE>2012年(截止到2012年09月18日的卷烟累计实现销售数据,不含访销数量)</SUBTITLE>
<TEXT>
卷烟本期销量箱,本期销额万元,销售均价0.00元/箱,本期期末库存量箱。
</TEXT>
<SUBTITLE>2012年(截止到2012年09月18日的卷烟累计实现销售数据,不含访销数量)</SUBTITLE>
<TEXT>
卷烟本期销量箱,本期销额万元,销售均价0.00元/箱,本期期末库存量箱。
</TEXT>
<SUBTITLE>2012年(截止到2012年09月18日的卷烟累计实现销售数据,不含访销数量)</SUBTITLE>
<TEXT>
卷烟本期销量箱,本期销额万元,销售均价0.00元/箱,本期期末库存量箱。
</TEXT>
</DATASET>我要娶到 TITLE 的列表 SUBTITLE的列表 还有TEXT的列表 怎么办啊

解决方案 »

  1.   

    三个列表
    XElement xEle = XElement.Load(@"C:\Users\M\Desktop\Test.txt");
                var result_1 = xEle.Descendants("TITLE").Select(a=>a.Value);
                var result_2 = xEle.Descendants("SUBTITLE").Select(a => a.Value);
                var result_3 = xEle.Descendants("TEXT").Select(a => a.Value);
      

  2.   


                string path = "XML路径";
                XmlDocument doc = new XmlDocument();
                doc.Load(path);
                XmlNode root = doc.SelectSingleNode("DATASET");
                //title列表
                XmlNodeList titleList = root.SelectNodes("TITLE");
                foreach (XmlNode xn in titleList)
                {
                    Console.WriteLine(xn.InnerText);
                }
                //subtitle列表
                XmlNodeList subList = root.SelectNodes("SUBTITLE");
                foreach (XmlNode xn in subList)
                {
                    Console.WriteLine(xn.InnerText);
                }
                //text列表
                XmlNodeList textList = root.SelectNodes("TEXT");
                foreach (XmlNode xn in textList)
                {
                    Console.WriteLine(xn.InnerText.Trim());
                }
      

  3.   

    这个XML很正常嘛 1楼回复可以实现
      

  4.   

        class Program
        {
            static void Main(string[] args)
            {
                System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(DATASET));
                DATASET dataset;
                // 读取
                using (System.IO.StreamReader reader = new System.IO.StreamReader("1.txt",Encoding.GetEncoding("gb2312")))
                {
                    dataset = serializer.Deserialize(reader) as DATASET;
                }            // 保存
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter("2.xml"))
                {
                    serializer.Serialize(writer,dataset);
                    writer.Flush();
                }
            }
        }
        [Serializable]
        public class DATASET
        {
            private List<string> _text=new List<string>();
            public string TITLE { get; set; }        public string SUBTITLE { get; set; }
            [XmlElement("TEXT")]
            public List<string> TEXT
            {
                get { return _text; }
                set { _text = value; }
            }
        }反序列化到对象然后随便玩吧