C# 检查xpath中是否存在Xml标记。
我正在尝试使用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标记在它生
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
对象不为空?