GetMatchingProductForIdResponse没有预期

时间:2014-08-13 10:39:20

标签: c# .net xml amazon

我一直试图从亚马逊读取一段时间的响应,但似乎陷入了从xml文件读取响应的地步。

我要做的是将响应转换为C#类对象,以便在将其传递给浏览器进行显示之前,我可以按照我喜欢的方式对其进行操作。

我尝试了同样的事情的许多变化,以使其工作,但它每次都在完全相同的点上不断下降。

以下是我目前正在测试的代码。

var doc = new XmlDocument();
doc.LoadXml(product.ToXML());

File.WriteAllText(@"D:\myFile.xml", doc.InnerXml);
var xRoot = new XmlRootAttribute();
xRoot.ElementName = "Product";

xRoot.IsNullable = true;
var serializer = new XmlSerializer(typeof(MarketplaceWebServiceProducts.Model.Product), xRoot);

using (var reader = XmlReader.Create(@"D:\myFile.xml"))
{
    //falls over here because of unexpected elements in the xml doc
    var info = (MarketplaceWebServiceProducts.Model.Product)serializer.Deserialize(reader);
}

异常消息是:

<GetMatchingProductForIdResponse xmlns='http://mws.amazonservices.com/schema/Products/2011-10-01'> was not expected.

如果其他人在亚马逊的回复中遇到此问题,或者有人知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

您是否有任何特定原因只保存了InnerXml?如果您不知道,那将剥离根节点并可能产生无效的XML(如果根节点有多个子节点,则为f.e。)

尝试保存OuterXml代替:

File.WriteAllText(@"D:\myFile.xml", doc.OuterXml);

如果这不是您面临的实际问题,您可能需要发布myFile.xml的内容。