当XML文件中不存在节点时,如何避免NullReferenceExceptions?

萌R

我有以下代码:

static void Main(string[] args)
{
    XmlDocument xml = new XmlDocument();
    xml.Load(@"C:\MR.xml");
    XmlNodeList stations = xml.SelectNodes("//FileDump/Message/Attachment");
    var Message_ID = xml.SelectSingleNode("//FileDump/Message/MsgID").InnerXml;

    Console.WriteLine("Message ID is :{0}", Message_ID);

    foreach (XmlNode station in stations)
    {
        var File_Name = station.SelectSingleNode("FileName").InnerXml;
        var File_ID = station.SelectSingleNode("FileID").InnerXml;
    }
}

在某些文件中,FileID和FileName并不总是存在。在这种情况下,如何避免NullReferenceExceptions?

红猴

如果必须在很多地方进行检查,并使代码简单明了,我会尝试这样的操作

public static class Helpers
{
   public static string GetInnerXml(this XmlNode node, string innerNodeName)
   {
     string innerXml = "";
     XmlNode innerNode = node.SelectSingleNode(innerNodeName);

     if (innerNode != null)
     {
       innerXml = innerNode.InnerXml;
     }

     return innerXml;
   }
}

像这样使用

  static void Main(string[] args)
  {
    XmlDocument xml = new XmlDocument();
    xml.Load(@"C:\MR.xml");
    XmlNodeList stations = xml.SelectNodes("//FileDump/Message/Attachment");
    var Message_ID = xml.GetInnerXml("//FileDump/Message/MsgID");

    Console.WriteLine("Message ID is :{0}", Message_ID);

    foreach (XmlNode station in stations)
    {
      var File_Name = station.GetInnerXml("FileName");
      var File_ID = station.GetInnerXml("FileID");
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列出不存在的文件时如何避免错误?

来自分类Dev

仅当neo4j中不存在节点时如何创建新节点

来自分类Dev

如果文件不存在,如何避免Makefile失败?

来自分类Dev

当object.keys中不存在obj时,如何避免发生错误?

来自分类Dev

当键在数组中不存在时,如何避免崩溃?

来自分类Dev

当令牌不存在时,如何避免在ANTLR中执行令牌后代码?

来自分类Dev

当object.keys中不存在obj时,如何避免发生错误?

来自分类Dev

如果Java中的XML中不存在节点或子节点,如何XPath返回空字符串

来自分类Dev

如何通过GWT插件摆脱Eclipse中的“ web.xml文件不存在”错误?

来自分类Dev

当文件不存在时如何继续循环?

来自分类Dev

如何防止更新不存在的节点?

来自分类Dev

如果文件不存在,如何从导入中跳过文件?

来自分类Dev

如何从不存在的(在编译时)文件夹中链接共享库

来自分类Dev

如何使用 Ansible 在文件中添加条目(仅当它不存在时)

来自分类Dev

如何从R中的复杂XML中提取值而不丢弃不存在值的节点?我的循环很慢

来自分类Dev

SQL中不存在时如何使用

来自分类Dev

Liquibase:当changelog.xml存在文件时,接收到“文件不存在”异常

来自分类Dev

在检查不存在的xml节点时,我在这里做错了什么?

来自分类Dev

仅在文件不存在时重写

来自分类Dev

删除时出错-文件不存在

来自分类Dev

当元素不存在时,如何避免“无法读取属性”错误?

来自分类Dev

避免在不存在类依赖项时崩溃

来自分类Dev

访问不存在的对象属性时避免尝试catch

来自分类Dev

XML到数据框如果节点不存在,如何获取默认值

来自分类Dev

如果Switch语句中不存在xml节点,如何通过断言使groovy脚本失败

来自分类Dev

XML到数据框如果节点不存在,如何获取默认值

来自分类Dev

如何处理包含对不存在节点的引用的 OpenStreetMap Overpass API XML?

来自分类Dev

如果 Freemarker 中不存在 XML 节点,则分配空字符串

来自分类Dev

如何复制不存在的文件?

Related 相关文章

  1. 1

    列出不存在的文件时如何避免错误?

  2. 2

    仅当neo4j中不存在节点时如何创建新节点

  3. 3

    如果文件不存在,如何避免Makefile失败?

  4. 4

    当object.keys中不存在obj时,如何避免发生错误?

  5. 5

    当键在数组中不存在时,如何避免崩溃?

  6. 6

    当令牌不存在时,如何避免在ANTLR中执行令牌后代码?

  7. 7

    当object.keys中不存在obj时,如何避免发生错误?

  8. 8

    如果Java中的XML中不存在节点或子节点,如何XPath返回空字符串

  9. 9

    如何通过GWT插件摆脱Eclipse中的“ web.xml文件不存在”错误?

  10. 10

    当文件不存在时如何继续循环?

  11. 11

    如何防止更新不存在的节点?

  12. 12

    如果文件不存在,如何从导入中跳过文件?

  13. 13

    如何从不存在的(在编译时)文件夹中链接共享库

  14. 14

    如何使用 Ansible 在文件中添加条目(仅当它不存在时)

  15. 15

    如何从R中的复杂XML中提取值而不丢弃不存在值的节点?我的循环很慢

  16. 16

    SQL中不存在时如何使用

  17. 17

    Liquibase:当changelog.xml存在文件时,接收到“文件不存在”异常

  18. 18

    在检查不存在的xml节点时,我在这里做错了什么?

  19. 19

    仅在文件不存在时重写

  20. 20

    删除时出错-文件不存在

  21. 21

    当元素不存在时,如何避免“无法读取属性”错误?

  22. 22

    避免在不存在类依赖项时崩溃

  23. 23

    访问不存在的对象属性时避免尝试catch

  24. 24

    XML到数据框如果节点不存在,如何获取默认值

  25. 25

    如果Switch语句中不存在xml节点,如何通过断言使groovy脚本失败

  26. 26

    XML到数据框如果节点不存在,如何获取默认值

  27. 27

    如何处理包含对不存在节点的引用的 OpenStreetMap Overpass API XML?

  28. 28

    如果 Freemarker 中不存在 XML 节点,则分配空字符串

  29. 29

    如何复制不存在的文件?

热门标签

归档