1

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

XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("//ns:Quote",nsmgr).ToString(SaveOptions.DisableFormatting);

Quote当XML 文件中存在 XML 节点并在Quote标签之间返回值时,这可以正常工作。但是 Quote xml 标记在它生成的 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 标签不存在时,请帮助我避免执行。

4

2 回答 2

2

也许boolean() XPATH 函数在这里有帮助:

boolean(//*[name()='Quote'])

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

XElement docQuote = XElement.Parse(Financial);
string result= docQuote.XPathSelectElement("boolean(//*[name()='Quote'])",nsmgr).ToString(SaveOptions.DisableFormatting);
于 2012-12-11T11:19:15.747 回答
-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);
   }
于 2012-12-11T09:54:57.460 回答