将XML文件中的数据读入平面文件(txt)和格式化数据

时间:2014-04-03 16:58:20

标签: c# xml text

我有一个包含节点和数据的XML文件......我需要将其作为普通数据写入文本文件。节点是数据的标题 接下来。

EG XML:

<Bank>
<accountholder>Georgina Wax</accountholder>
<accountnumber>408999703657</accountnumber>
<accounttype>cheque</accounttype>
<bankname>National Bank</bankname>
<branch>Africa</branch>
<amount>2750.00</amount>
<date>12/01/2012</date>
</Bank>   

到txt文件并格式化为:

accountholder accountnumber accounttype bankname
Georgina Wax 408999703657查询国家银行

我似乎无法在数据和听众之间留出空格。

以下是我的尝试:

 StreamWriter writer = File.CreateText(@"C:\\Test.txt");
 XmlDocument doc = new XmlDocument();
 doc.Load(@"C:\\bank.xml");
       writer.WriteLine(string.Join("|",doc.SelectSingleNode("/debitorders/deduction").ChildNodes.C    ast<XmlElement>().Select(e =>    doc.SelectSingleNode("/debitorders/deduction/bankname").ToString())));

  foreach (XmlElement book in doc.SelectNodes("/debitorders/deduction"))
            {
                writer.WriteLine(book.ChildNodes.Cast<XmlElement>().Select(e =>    e.InnerText).ToArray());
            }

请帮忙。

2 个答案:

答案 0 :(得分:2)

这将产生你想要的输出。

private static void LoadAndWriteXML()
    {
        string headerFiles = "";
        string values = "";
        using (XmlReader reader = XmlReader.Create(@"C:\\bank.xml"))
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element && !reader.Name.Equals("Bank"))   // we have to skip root node means bank node.
                {
                    headerFiles += reader.Name + " ";
                    values += reader.ReadString() + " ";
                }
            }
        }

        StreamWriter writer = new StreamWriter(@"C:\\Test.txt");

        writer.WriteLine(headerFiles.Trim());
        writer.WriteLine(values.Trim());

        writer.Close();


    }

答案 1 :(得分:0)

XDocument xdoc = new XDocument();
xdoc = XDocument.Load(fname);
xdoc.Save(fname1);

将使用标记对齐格式保存文件