使用带有占位符的模板在C#中创建XML
我需要将各种类写入XML,以便分发到客户机系统 我知道在c#中转换类的明显方法是序列化。理想情况下,我会这样做——但我的老板希望我使用某种模板系统 因此,我将有一个模板(基本示例),如下所示,并根据需要替换标记使用带有占位符的模板在C#中创建XML,c#,xml,C#,Xml,我需要将各种类写入XML,以便分发到客户机系统 我知道在c#中转换类的明显方法是序列化。理想情况下,我会这样做——但我的老板希望我使用某种模板系统 因此,我将有一个模板(基本示例),如下所示,并根据需要替换标记 <Advert> <Title>{Title}</Title> <Description>{Description}</Description> [etc etc etc etc] </Advert> {Titl
<Advert>
<Title>{Title}</Title>
<Description>{Description}</Description>
[etc etc etc etc]
</Advert>
{Title}
{说明}
[等]
我真的不想这样做,但这就是生活:)有人对如何做到这一点有好的建议吗?图书馆等?希望有比字符串替换(等)更强大的东西-但有一种感觉,它可能会这样
编辑:
我应该说的是,这个想法是能够调整XML模板,而不必重新构建应用程序。看一看。如果我没看错你的问题,你可以:
// Set these however you want
string title = "{Title}"
string description = "{Description}"
XDocument xml = new XDocument(
new XElement("Advert",
new XElement("Title", title),
new XElement("Description", description)
... ));
我会这样做
var parameters = new Dictionary<string, string>
{
{"Title", "Hello"},
{"Description", "Descr1"}
};
string xml = "<Advert><Title>{Title}</Title><Description>{Description}</Description></Advert>";
var replaced = Regex.Replace(xml, @"\{(.+?)\}", m => parameters[m.Groups[1].Value]);
var参数=新字典
{
{“Title”,“Hello”},
{“Description”,“Descr1”}
};
字符串xml=“{Title}{Description}”;
var replaced=Regex.Replace(xml,@“\{(+?)\}”,m=>参数[m.Groups[1].Value]);
对不起,我应该说,我们的想法是能够在不重建应用程序的情况下更改XML格式。明白了。XDocument和XElement类中有各种方法,允许您更改现有元素或添加新元素。我会让你决定它们是否适合你的应用程序。简单而聪明