1

xpath を使用して Xml ファイルから値を取得しようとしています。これが私のコードです:

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

これはQuote、XML ファイルに 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 タグが存在しない場合の実行を回避するのを手伝ってください。

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 に答える