C# 检查xpath中是否存在Xml标记。

C# 检查xpath中是否存在Xml标记。,c#,xml,exception,xpath,C#,Xml,Exception,Xpath,我正在尝试使用xpath从Xml文件中获取值。这是我的密码: XElement docQuote = XElement.Parse(Financial); string result= docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting); 当Xml文件中存在QuoteXml节点,并且返回介于Quote标记之间的值时,这种方法可以正常工作。但是,Quote xml标记在它生

我正在尝试使用xpath从Xml文件中获取值。这是我的密码:

XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting);
当Xml文件中存在
Quote
Xml节点,并且返回介于
Quote
标记之间的值时,这种方法可以正常工作。但是,Quote xml标记在它生成的xml文件中不存在,因此出现异常

Object reference not set to an instance of an object.
我已尝试检查空值,如下所示:

if(docQuote.XPathSelectElement(“//ns:Quote”,nsmgr)!=null

但是,它不能避免null时的执行

请帮助我避免在Xml标记不存在时执行

试试看

 XElement docQuote = XElement.Parse(Financial);
   if(docQuote != null && docQuote.XPathSelectElement("//ns:Quote",nsmgr) != null)
   {
    string result=   docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting);
   }
试一试

XPATH函数在这里可能有帮助:

boolean(//*[name()='Quote'])
如果元素引号存在,
布尔(//*[name()='Quote'])
应返回true,否则返回false

XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("boolean(//*[name()='Quote'])",nsmgr).ToString(SaveOptions.DisableFormatting);
XPATH函数在这里可能有帮助:

boolean(//*[name()='Quote'])
如果元素引号存在,
布尔(//*[name()='Quote'])
应返回true,否则返回false

XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("boolean(//*[name()='Quote'])",nsmgr).ToString(SaveOptions.DisableFormatting);

这将不起作用,因为docQuote不为null。当执行下半部分检查时,会触发异常。你能显示完整的代码吗。nsmgr财务对象e.t.c可能在声明检查P.S.[投票-1:)]中有错误,这将不起作用,因为docQuote不为空。当执行下半部分检查时,会触发异常。你能显示完整的代码吗。nsmgr财务对象e.t.c在声明检查P.S.[投票-1:)]中可能有错误您是否确保您的
nsmgr
对象不为空?您是否确保您的
nsmgr
对象不为空?