我面临的情况是使用 Linq 将 XML 文档解析为对象。在解析过程中,我正在检查以确保元素不为空,然后再继续解析它们的值。有没有办法简化这个陈述?
var variable = (from x in xdoc.Descendants("Root")
select new AccountingResponse
{
NetCharge = x.Element("Charges") != null && x.Element("Charges").Element("NetCharge") != null ? x.Element("Charges").Element("NetCharge").Value : "0",
TotalCharge = x.Element("Charges") != null && x.Element("Charges").Element("TotalCharge") != null ? x.Element("Charges").Element("TotalCharge").Value : "0"
}).SingleOrDefault();
总而言之,我不想继续检查每条线上是否存在节点。我知道我可以在解析之前测试该节点是否存在,但可能还有其他数据需要解析以创建 AccountingResponse,我想避免一次只解析一部分 XML 的 if 语句。
或者也许我做错了,有更好的方法!