2012-04-19 33 views
1

我有数据库表中的XML需要转换更新值,根据特定条件进行简单的更改。是否可以在C#项目中使用XDT?

做我的研究,但只找到工具/插件应用到Web.config中或App.Config中:

http://ctt.codeplex.com/

http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

我可以使用XSLT,但似乎XDT理想,更简单,但是我如何在C#项目中使用它?

感谢

+0

XDT看起来可能更简单一些,但以我的经验来看,当您尝试将工具用于非专门设计的目的时,您将不可避免地遇到问题。如果您的目标是转换XML结构,XSLT就是专门为此目的而设计的。 – MattDavey 2012-04-19 14:44:54

回答

4

对于任何人碰到这个职位的到来,有一个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); 
    } 
    } 
} 

也就是说,是当然的,很基本的以最小的检查,但它给你的要点。

+0

嗨,您认为可能需要进行哪些其他检查? – CRice 2016-03-21 07:41:49

+0

@CRice:文件验证(一个或两个都存在吗?),模式验证(标记是否有效?),安全检查(您是否有权写入目标目录?)等等。 – 2016-03-21 12:10:29

相关问题