2016-12-22 84 views
0

我有一個平面文件,數據存儲在XML行中。我使用腳本組件解析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; 
    } 

回答

0

基本上你可以做兩件事情:要麼使用null conditional操作:

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

(右手邊是null如果xn["col3"]null

或在if聲明它包:

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