2016-12-22 11 views
0

私はフラットファイルを持ち、データはXML行に格納されています。私は以下のようにソースとしてスクリプトコンポーネントを使用してXML行を解析しています。特定の行で列のいずれかが表示されなくなるまでうまくいきます。スクリプトを使用してXML行を解析するコンポーネント

たとえば、ソースファイルの12行目には、Col1とCol2のみがあり、Col3はありません。行の中の列を見つけられないときはいつでもNULLとして返す必要があるように、以下のC#コードを変更する必要があります。

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

あなたは基本的に2つのことを行うことができます。

xn["col3"]nullであれば右側がnullある)

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

またはif文でそれをラップ:null conditional演算子を使用しますか:

if (xn["col3"] != null) { 
    Output0Buffer.col3 = xn["col3"].InnerText; 
} 
関連する問題