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

时间:2014-10-15 14:31:18

标签: c# xml

我有各种类需要写入XML以便分发给客户端系统。

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

所以我会有一个模板(基本示例),如下所示,并根据需要替换标签。

<Advert>
<Title>{Title}</Title>
<Description>{Description}</Description>
[etc etc etc etc]
</Advert>

我真的不想这样做,但这就是生活:)有没有人对如何做到这一点有很好的建议?图书馆等?希望有一些更强大的功能,然后字符串替换(等) - 但感觉它是可能的方式!

编辑:

我应该说的是,我们的想法是能够在不必重建应用程序的情况下调整XML模板。

2 个答案:

答案 0 :(得分:2)

我会这样做

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]);

答案 1 :(得分:0)

看看XDocument。如果我正确地读你的问题,你可以这样做:

// 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)
        ... ));