在XML模板中填写值

时间:2013-08-03 17:38:17

标签: c# .net xml

我有xml模板存储在文件中,其中有待填充的值被写为例如以下所示

<customers>
  <customer>
  <name><%=user.name%></name>
  <street><%=user.address.street%></street>
  </customer>
</customers>

我将填写用户对象并将此字符串加载到该字符串中。有没有简单的方法可以轻松替换整个文件中的相关值?请考虑上面只是示例,XML非常复杂,其中包含很多常量,我无法使用XML序列化将对象转换为XML。

由于

2 个答案:

答案 0 :(得分:1)

一个简单的正则表达式可以帮助

var newXml = Regex.Replace(xml, "<%=(.+?)%>", m => MyFxn(m.Groups[1].Value));

//replace this function with yours which returns the real values. It's
//just a demo.... 
string MyFxn(string s)
{
    var dict = new Dictionary<string, string>(){
        {"user.name","name1"},
        {"user.address.street","street1"}
    };

    return dict[s];
}

答案 1 :(得分:0)

使用正则表达式查找数据绑定表达式,并将其替换为使用DataBinder.Eval(在ASP.NET中)或通过对象的相应属性(http://programmersunlimited.wordpress.com/2010/06/19/reflection-get-property-value-from-path/)反射获得的值。