试图在Windows Phone 7.8应用程序中解析xml但获取空值?

时间:2013-04-05 20:58:21

标签: c# visual-studio-2010 windows-phone-7 xml-parsing linq-to-xml

我正在尝试解析我得到的xml作为对webservice响应的响应xml如下所示

<GeneralSearchResponse>
<serverDetail></serverDetail>
<exceptions exceptionCount="1"></exceptions>
<clientTracking height="19" type="logo" width="106"></clientTracking>
<searchHistory></searchHistory>
<categories matchedCategoryCount="1" returnedCategoryCount="1">
<category id="0">
<name>bart</name>
<categoryURL>http://www.shopping.com/bart/products?oq=bart&linkin_id=7000610
</categoryURL>
<items matchedItemCount="1045" pageNumber="1" returnedItemCount="5">
<product id="130506037"></product>
<product id="104483377"></product>
<offer featured="false" id="tp-VCdOoO1RL6xICeRONqg==" smartBuy="false" used="false"></offer>
<offer featured="false" id="12evWWi57lddzFufngUWsg==" smartBuy="false" used="false"></offer>
<product id="96754577"></product>
</items>
<attributes matchedAttributeCount="5" returnedAttributeCount="5"></attributes>
<contentType>hybrid</contentType>
</category>
<intActualCategoryCount>4</intActualCategoryCount>
</categories>
<relatedTerms></relatedTerms>
</GeneralSearchResponse>

但是当我尝试使用以下代码进行解析时,我无法获得任何下降或任何节点

XDocument xDoc = new XDocument();
xDoc = XDocument.Parse(data);
var xEle = xDoc.Root.Descendants("categories");

但是xEle没有任何类别。请让我知道这是什么问题??

1 个答案:

答案 0 :(得分:4)

您的XML具有默认命名空间 - 因此其中的元素位于该命名空间中。在LINQ to XML中查找元素的方法是名称空间敏感的。你想要:

XNamespace ns = "urn:types.partner.api.shopping.com";
XDocument xDoc = new XDocument();
xDoc = XDocument.Parse(data);
var xEle = xDoc.Root.Descendants(ns + "categories");