.net 不需要GetMatchingProductForId响应

uqxowvwt  于 2023-03-20  发布在  .NET
关注(0)|答案(1)|浏览(111)

一段时间以来,我一直试图读取亚马逊的响应,但似乎卡在了从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.

有没有其他人对亚马逊的回复有这个问题,或者有没有人知道我如何绕过这个问题?

nx7onnlm

nx7onnlm1#

您只保存InnerXml是否有什么特定的原因?以防您不知道,这将剥离根节点,并可能产生无效的XML(例如,如果根节点有多个子节点)。
尝试保存OuterXml

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

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

相关问题