使用脚本Component解析XML行

时间:2016-12-22 16:22:02

标签: c# ssis-2012

我有一个平面文件,数据存储在XML行中。我正在使用脚本组件解析XML行,如下所示。它工作正常,直到某一行,我们才能看到其中一列。

例如:在源文件的第12行,它只有Col1和Col2,并且没有Col3。我需要修改下面的C#代码,这样每当它没有找到一行中的列时,它需要返回NULL。

public override void CreateNewOutputRows()
{

    string filepath = @"c:\test\test\xmldata.txt";
    string fileContent = new StreamReader(filepath).ReadToEnd();


    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<root>"+ fileContent+"</root>");

    XmlNodeList xnl = doc.GetElementsByTagName("TICKET_EXTRACT");


    foreach (XmlNode xn in xnl) {

        Output0Buffer.AddRow();
        Output0Buffer.col1 = xn["col1"].InnerText;        
        Output0Buffer.col2 = xn["col2"].InnerText;
        Output0Buffer.col3 = xn["col3"].InnerText;
    }

1 个答案:

答案 0 :(得分:0)

您基本上可以做两件事:使用null conditional运算符:

Output0Buffer.col3 = xn["col3"]?.InnerText;

(如果nullxn["col3"],则右侧为null

或将其包装在if语句中:

if (xn["col3"] != null) {
    Output0Buffer.col3 = xn["col3"].InnerText;
}