c# - 计算 XML 节点脚本任务 SSIS

标签 c# sql-server visual-studio-2015 ssis

我有以下 xml:

<Users>
    <User ID="User1"
         <Element1>Name1<Element1>
    </User>
    <User ID="User2"
        <Element1>Name2<Element1>
    </User>
    <User ID="User3"
        <Element1>Name3<Element1>
    </User>
</Users>

此 XML 是在 SSIS 中创建并存储在字符串变量中的。 在执行下一步之前,我需要对用户节点进行计数,并且我想使用脚本任务来执行此操作。这是我认为我需要做的

// assign string to a variable
String XMLString = Dts.Variables["User::XMLString"].Value
// Convert variable to xml data type: 
XmlSerializer serializer = new XmlSerializer(XMLString );
//Count the user nodes and assign integer to a variable.
Dts.Variables["User::UserCount"].Value = serializer.SelectNodes("Users/User").Count;

我一直在尝试弄清楚如何做到这一点,但我对 C# 还很陌生,我真的需要一个关于此的示例。 谢谢!

最佳答案

你可以这样做:

        string XMLString = Dts.Variables["User::XMLString"].Value;
        Dts.Variables["User::UserCount"].Value = (Regex.Matches(XMLString, @"</User>")).Count;

请参阅 this link 中的代码.

关于c# - 计算 XML 节点脚本任务 SSIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289307/

相关文章:

c# - 在 ASP.NET C# 中从 URL 中提取子目录名称

c# - Ubuntu 上的 ASP.NET Core 2.2 Web 应用程序 - 如何实现数据保护

c# - 仅在 EF Core 中的 Scaffold-DbContext 存储过程

sql - 根据sql server中的最高版本从sql结果中获取前1个结果

c# - Entity Framework 死锁

visual-studio-2015 - Visual Studio 2015 在解决方案中哪里显示错误指示器?

C# 编译时确保方法仅在 UI 线程上调用,而其他方法仅在后台(非 ui)线程中调用

c# - 将 textbox.text 值与 SQL Server 中的值进行比较

c# - 如果 IQueryable<T> 继承 IEnumerable<T> ,那么 IQueryable<T> 为什么是 LINQ to SQL?

visual-studio-2015 - 在 VS2015 Community Edition 中一行格式化属性