我有xml模板存储在文件中,其中有待填充的值被写为例如以下所示
<customers>
<customer>
<name><%=user.name%></name>
<street><%=user.address.street%></street>
</customer>
</customers>
我将填写用户对象并将此字符串加载到该字符串中。有没有简单的方法可以轻松替换整个文件中的相关值?请考虑上面只是示例,XML非常复杂,其中包含很多常量,我无法使用XML序列化将对象转换为XML。
由于
答案 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/)反射获得的值。