我试图使用xpath从Xml文件中获取值。这是我的代码:
XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting);
当XML文件中存在Quote
Xml节点并在Quote
标记之间返回值时,此工作正常。但是,它生成的XMl文件中不存在Quote xml标记和异常。
Object reference not set to an instance of an object.
我试图检查NULL如下:
if(docQuote.XPathSelectElement("//ns:Quote",nsmgr) != null
)
和
if(docQuote.XPathSelectElement("//ns:Quote",nsmgr) != null).value != null)
但是当null时它不会避免执行。
请帮我避免在Xml标签不存在时执行。
答案 0 :(得分:2)
也许boolean() XPATH函数在这里有帮助:
boolean(//*[name()='Quote'])
如果元素引用存在,boolean(//*[name()='Quote'])
应返回true,否则返回false。
XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("boolean(//*[name()='Quote'])",nsmgr).ToString(SaveOptions.DisableFormatting);
答案 1 :(得分:-1)
尝试
XElement docQuote = XElement.Parse(Financial);
if(docQuote != null && docQuote.XPathSelectElement("//ns:Quote",nsmgr) != null)
{
string result= docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting);
}