在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。
感谢
一个简单的正则表达式可以在这里帮助
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/)。