Biztalk - 迭代csv文件

时间:2014-08-14 18:16:20

标签: biztalk biztalk-2013

我有一个csv文件,我遍历每个记录并单独处理每个记录。在迭代记录的过程中,CSV中的每一行最终都是没有命名空间的消息;因此我无法在地图中使用该消息。为了解决我的消息中没有命名空间的面,我将消息写入本地字符串变量,然后执行一些字符串操作来添加命名空间。必须有更好的方法来迭代csv文件并处理每条记录。

以下是我的问题的更详细说明: 我有一个我需要阅读的csv文件,然后在每条记录上执行一系列任务。我选择处理每条记录的路由是确定csv文件中的记录数,然后通过执行此xpath命令遍历每条记录:     “Message_SingleRecord = xpath(Message_Document," // processingItem [" + counterString +"]");”。 这可以很好地给我每条记录,除了因为“processingItem”元素本质上是csv文档的子记录,每个Message_SingleRecord都没有命名空间,所以我无法转换/映射它。为了将命名空间添加到Message_SingleRecord,我创建了这个可怕的黑客:

Debug_SingleMessage = Message_SingleRecord;
debugVariable = Debug_SingleMessage.OuterXml;
debugVariable = debugVariable.Replace("<processingItem xmlns=\"\"", 
    "<ns0:processingItem     xmlns:ns0=\"http://SchemaGeneration.ProcessingSingleRecord\">");
debugVariable = debugVariable.Replace("</processingItem>", "</ns0:processingItem>");
xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(debugVariable);
Message_SingleRecord = xmlDoc;

1 个答案:

答案 0 :(得分:2)

您可以使用Flat File Disassembler将CSV文件反汇编为XML,而无需执行任何自定义逻辑。请参阅链接查看更多细节。 http://msdn.microsoft.com/en-us/library/aa577898.aspx