我想检查给定节点是否存在于 *.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
。您正在检查选定的“语言”节点是否为 null
,node
本身是否为 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/