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

读取特殊格式的xml 如何读

2013-01-08 
读取特殊格式的xml 怎么读啊各位大侠 像这种格式的xml文件怎么读取啊?xml version1.0 encodinggb231

读取特殊格式的xml 怎么读啊
各位大侠 像这种格式的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的列表 怎么办啊
[解决办法]
三个列表
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);

[解决办法]

            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());


            }


[解决办法]
    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; }
        }
    }
反序列化到对象然后随便玩吧

热点排行