2016-12-22 4 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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^