从xml / text文件动态创建文本文件

时间:2010-04-09 08:55:22

标签: c#

我可以使用先前创建的xml文件和文本文件中的数据从c#程序动态创建文本文件,我写了一半代码,但不能再进一步了。请帮忙

using System;
using System.IO;
using System.Xml;

namespace Task3
{

   class TextFileReader
   {

      static void Main(string[] args)
      {
         String strn=" ", strsn=String.Empty;  
         XmlTextReader reader = new XmlTextReader("my.xml");

                 while (reader.Read())
                 {
                    switch (reader.NodeType)
                    {
                       case XmlNodeType.Element: // The node is an element.
                          if (reader.HasAttributes)
                          {
                             strn = reader.GetAttribute(0);
                             strsn = reader.GetAttribute(1);
                             int counter = 0;
                             string line;
                             // Read the file and display it line by line.
                             System.IO.StreamReader file = new System.IO.StreamReader("read_file.txt");
                             string ch, ch1;
                             while ((line = file.ReadLine()) != null)
                             {
                                if (line.Substring(0, 1).Equals("%"))
                                {
                                   int a = line.IndexOf('%');
                                   int b = line.LastIndexOf('%');
                                   ch = line.Substring(a + 1, b - 1);
                                   ch1 = line.Substring(a, b+1);
                                   if (ch == "name")
                                   {
                                      string test = line.Replace(ch1, strn);
                                      Console.WriteLine(test);
                                   }
                                   else if (ch == "sirname")
                                   {
                                      string test = line.Replace(ch1, strsn);
                                      Console.WriteLine(test);
                                   }
                                }
                                else
                                {
                                   Console.WriteLine(line);
                                }
                                counter++;
                             }
                             file.Close();
                          }
                          break;
                    }

                 }        

         // Suspend the screen.
         Console.ReadLine();
      }
   }
}

我正在阅读的xml文件是:

<?xml version="1.0" encoding="utf-8" ?> 
<Workflow>
  <User UserName="pqr" Sirname="sbd" /> 
  <User UserName="abc" Sirname="xyz" /> 
</Workflow>

文本文件是:

hi this is me
%sirname%
%name%

但这不是我想要的......请帮助

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用XSLT?很容易定义一个.xsl文件,它将你的XML“翻译”成一个格式化的文本文件,这似乎是你想要做的。

答案 1 :(得分:1)

我认为,你真正想做的是用xml中的数据替换%sirname%之类的标记。您已成功读取xml并编写文本文件。所以你的问题仍然存在:如何在% - 符号之间替换令牌?

我建议使用正则表达式。如果您遇到问题,请参阅this explenation,询问更具体的问题。