我可以使用先前创建的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%
但这不是我想要的......请帮助
答案 0 :(得分:1)
您是否考虑过使用XSLT?很容易定义一个.xsl文件,它将你的XML“翻译”成一个格式化的文本文件,这似乎是你想要做的。
答案 1 :(得分:1)
我认为,你真正想做的是用xml中的数据替换%sirname%
之类的标记。您已成功读取xml并编写文本文件。所以你的问题仍然存在:如何在%
- 符号之间替换令牌?
我建议使用正则表达式。如果您遇到问题,请参阅this explenation,询问更具体的问题。