c# - 检查xml节点是否存在?

标签 c# asp.net xml

我想检查给定节点是否存在于 *.xml 文件中。 我尝试:

 string language = node.SelectSingleNode("language") != null ? (node.SelectSingleNode("language").Value == "en" ? "en-US" : "en-US") : "en-US";

但我认为它只检查节点值。在一些 xml 文件中,我没有名为 language 的节点,所以它给出了一个 Null Reference Ex.. 。 如何检查 *.xml 文件中是否存在给定节点?谢谢。

最佳答案

有些东西是 null。您正在检查选定的“语言”节点是否为 nullnode 本身是否为 null

将代码分散到更多行,嵌套的 ?: 代码不容易理解,您不得不重复默认值和函数调用。

使用变量,例如一个用于 node.SelectSingleNode("language") 的变量,这样您就不会重复执行该操作。这将帮助您找到错误。

string language = "en-US"; //default
if(node!=null)
{
  var langNode = node.SelectSingleNode("language");
  if(langNode!=null)
  {
    //now look at langNode.Value, and overwrite language variable, maybe you wanted:
    if(langNode.Value != "en")
    {
       language = langNode.Value;
    }
  }
}

关于c# - 检查xml节点是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004903/

相关文章:

c# - 使用自定义字体的 RDLC 报告 - 调用 COM 组件已返回错误 HRESULT E_FAIL

c# - 为什么我会收到此消息 : "items collection must be empty before using itemssource" in a treeview?

C# Tabcontrol 捕获 mousedown 事件

c# - 实例化后的Unity3D C#面板定位

c# - 使用 C# 更改 ASP.net 中的背景图像

html - 在打印期间更改字体

asp.net - 在aspnet中设置文件夹默认页面

.net - 显示二元决策树的工具

java - 存储 Java UI 应用程序配置/设置的最佳实践

sql - 在 OPENXML sql 的情况下,将空 XML 节点的数据类型 nvarchar 转换为数字时出错