我有数据库表中的XML需要转换更新值,根据特定条件进行简单的更改。是否可以在C#项目中使用XDT?
做我的研究,但只找到工具/插件应用到Web.config中或App.Config中:
http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5
我可以使用XSLT,但似乎XDT理想,更简单,但是我如何在C#项目中使用它?
感谢
我有数据库表中的XML需要转换更新值,根据特定条件进行简单的更改。是否可以在C#项目中使用XDT?
做我的研究,但只找到工具/插件应用到Web.config中或App.Config中:
http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5
我可以使用XSLT,但似乎XDT理想,更简单,但是我如何在C#项目中使用它?
感谢
在最后找到了一个不错的一段代码,做什么,我想:
http://petemontgomery.wordpress.com/2010/09/20/microsoft-xdt-language/
对于任何人碰到这个职位的到来,有一个NuGet包提供执行此转换的能力:
安装,包装Microsoft.Web.Xdt
然后,它是沿着线的东西:
// Some example file paths
var sourceDoc = "web.config";
var transDoc = "web.Debug.config";
var destDoc = "bin\web.config";
// The translation at-hand
using (var xmlDoc = new XmlTransformableDocument())
{
xmlDoc.PreserveWhitespace = true;
xmlDoc.Load(sourceDoc);
using (var xmlTrans = new XmlTransformation(transDoc))
{
if (xmlTrans.Apply(xmlDoc))
{
// If we made it here, sourceDoc now has transDoc's changes
// applied. So, we're going to save the final result off to
// destDoc.
xmlDoc.Save(destDoc);
}
}
}
也就是说,是当然的,很基本的以最小的检查,但它给你的要点。
嗨,您认为可能需要进行哪些其他检查? – CRice 2016-03-21 07:41:49
@CRice:文件验证(一个或两个都存在吗?),模式验证(标记是否有效?),安全检查(您是否有权写入目标目录?)等等。 – 2016-03-21 12:10:29
XDT看起来可能更简单一些,但以我的经验来看,当您尝试将工具用于非专门设计的目的时,您将不可避免地遇到问题。如果您的目标是转换XML结构,XSLT就是专门为此目的而设计的。 – MattDavey 2012-04-19 14:44:54