在XML模板中填写值

本文关键字:XML | 更新日期: 2023-09-27 18:26:00

我有xml模板存储在有要填充的值的文件中,例如

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

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

感谢

在XML模板中填写值

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

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

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

相关文章:
  • 没有找到相关文章