我有一个平面文件,数据存储在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 :(得分:0)
您基本上可以做两件事:使用null conditional运算符:
Output0Buffer.col3 = xn["col3"]?.InnerText;
(如果null
为xn["col3"]
,则右侧为null
)
或将其包装在if
语句中:
if (xn["col3"] != null) {
Output0Buffer.col3 = xn["col3"].InnerText;
}