Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有占位符的模板在C#中创建XML_C#_Xml - Fatal编程技术网

使用带有占位符的模板在C#中创建XML

使用带有占位符的模板在C#中创建XML,c#,xml,C#,Xml,我需要将各种类写入XML,以便分发到客户机系统 我知道在c#中转换类的明显方法是序列化。理想情况下,我会这样做——但我的老板希望我使用某种模板系统 因此,我将有一个模板(基本示例),如下所示,并根据需要替换标记 <Advert> <Title>{Title}</Title> <Description>{Description}</Description> [etc etc etc etc] </Advert> {Titl

我需要将各种类写入XML,以便分发到客户机系统

我知道在c#中转换类的明显方法是序列化。理想情况下,我会这样做——但我的老板希望我使用某种模板系统

因此,我将有一个模板(基本示例),如下所示,并根据需要替换标记

<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类中有各种方法,允许您更改现有元素或添加新元素。我会让你决定它们是否适合你的应用程序。简单而聪明