如果响应中存在值,请检查。易趣API

时间:2015-05-04 15:47:13

标签: c# xml soap nullreferenceexception

我在开发应用程序时遇到问题。 我使用eBay API获取有关卖家列出的商品的信息。我使用的呼叫名为" GetSellerList"。

响应可能包含名为" CategoryID"的值。 (FreeAddedCategory.CategoryID)如果有可用于该项目的FreeAddedCategory。你会发现像这样的XML作为响应:

<ItemArray>
  <Item>
    <FreeAddedCategory>
      <CategoryID>XXXXXXXXX</CategoryID>
    </FreeAddedCategory>
  </Item>
</ItemArray>

因为并不总是返回此值,所以收到以下错误消息:

对象引用未设置为对象的实例

我现在想在使用它之前检查这个对象是否可用,以防止出现错误。这就是我解决问题的方法(但没有成功):

    foreach (ItemType item in apiCall.ApiResponse.ItemArray)
       {
          if (String.IsNullOrWhiteSpace(item.FreeAddedCategory.CategoryID))
                {
                    Console.WriteLine("FreeAdded: Nicht vorhanden!");
                }
        }

但此检查也会显示相同的错误消息。我可以做些什么来使代码工作?逻辑应该是这样的:

IF item.FreeAddedCategory.CategoryID exist
  {
      do everything that needs to be done
  }
ELSE skip;

1 个答案:

答案 0 :(得分:0)

尝试:

XElement root = XElement.Load(file); // .Parse(string);
if (root.Descendants("FreeAddedCategory").Any())
{
   // do exists
}
else
{
   // doesn't exist
}

如果对您的案例更有意义,请使用CategoryId