我有一个平坦的文件,数据存储在XML行中。我正在使用脚本组件作为源来解析XML行,如下所示。它工作正常,直到在特定行中,我们才看到其中一列。
例如:在源文件的第12行中,它只有COL1和COL2,并且没有COL3。我需要修改以下C#代码,以便每当没有找到一列时,就需要返回为null。
public override void CreateNewOutputRows()
{
string filepath = @"c:testtestxmldata.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;
}
您基本上可以做两件事:要么使用无条件操作员:
Output0Buffer.col3 = xn["col3"]?.InnerText;
(如果xn["col3"]
是null
,则右侧是null
)
或在if
语句中包装:
if (xn["col3"] != null) {
Output0Buffer.col3 = xn["col3"].InnerText;
}