【发布时间】:2013-09-19 14:31:47
【问题描述】:
我已经使用 xsd.exe 为我的 XML 创建了类。在 XML (SEPA camt.053) 中有 minOccurs = 0 的多重嵌套节点。
我像这样导航到节点:
entry.NtryDtls[0].TxDtls[0].RltdPties.CdtrAcct.Id.Item
在此路径 RltdPties 中,CdtrAcct 和 Id 可以为空。
如果 RltdPties 为 null,我会收到异常,因为 CdtrAcct 不存在。
有没有简单的方法不检查每个节点是否为空来获取项目的值? 如果路径不存在,从我可以检查的最后一个节点获取 null (或其他内容)就足够了。
我的想法是用 try/catch 包围这个查询,如果它抛出异常,我可以将变量设置为空字符串左右。
【问题讨论】:
-
NtryDtls?这应该意味着“条目详细信息”吗?我会考虑修改这些变量名,因为我很难阅读,其他人也会。
-
已经有人在这里回答了,可能会有所帮助:stackoverflow.com/questions/298009/…
-
节点名称不是我的。它由 iso 20022 / SEPA camt.053 格式定义。但是在使用这个 xml 文件一周后,我看不到这些缩写。感谢您的链接。由于这种深层的 xml 结构,我希望有一种简单的方法。
标签: c# xml xml-deserialization xsd.exe