简单的读取xml格式文件

该博客介绍如何简单高效地从XML文件中读取所有名为seg的节点内容。适用于格式简单的文件,文中提到读取文件夹中的文件会按字母顺序进行,若需按数字顺序则需自定义处理方式。
摘要由CSDN通过智能技术生成
        static void xml2plain()
        {
            string src = "ec-news-2009-realsrc.xml";
            string trg = "ec-news-2009-ref.xml";
            XmlDocument xml = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;
            XmlReader reader = XmlReader.Create(trg, settings);
            xml.Load(reader);

            XmlNodeList nodes = xml.GetElementsByTagName("seg");
            StringBuilder buf = new StringBuilder();
            int c = 0;
            bool s = false;
            int f_c = 1;
            foreach (XmlNode n in nodes)
            {
                string v = n.InnerText;
                v = v.Trim();
                buf.AppendLine(v);
            }
            File.WriteAllText(name1, buf.ToString(), Encoding.UTF8);
        }

这个比较简单,读取文件中所有节点名字为seg的xml的值,对于一般格式简单的文件很方便。

下面这个是从文件中读取数据,最终合并为一个文件。注意:默认读取文件夹中的文件是按照字母顺序读取的,对于按照数字排序的文件需要自定义。

        static void trans2cor()
        {
            string folder = @"D:\Documents\Projects\xml2plain\xml2plain\bin\Debug\trans\google-src\";
            DirectoryInfo dir = new DirectoryInfo(folder);
            FileInfo[] files = dir.GetFiles("*.txt");
            StringBuilder buf = new StringBuilder();
            bool s = false;
            int length = 11;
            for (int i = 0; i < length; i++)
            {
                string name = folder + (i +1).ToString()+".txt";
                string[] lines = File.ReadAllLines(name, Encoding.Default);
                for (int j = 0; j < lines.Length; j++)
                {
                    string tmp = lines[j];
                    tmp = tmp.Trim();
                    if (s)
                    {
                        string tt = "";
                        for (int k = 0; k < tmp.Length; k++)
                        {
                            tt += tmp[k];
                            tt += " ";
                        }
                        tmp = tt.Trim();
                    }
                    if (tmp != "")
                    {
                        buf.AppendLine(tmp);
                    }
                }
            }
            File.WriteAllText("result.txt", buf.ToString(), Encoding.UTF8);
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值