一段时间以来,我一直试图读取亚马逊的响应,但似乎卡在了从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条答案
按热度按时间nx7onnlm1#
您只保存
InnerXml
是否有什么特定的原因?以防您不知道,这将剥离根节点,并可能产生无效的XML(例如,如果根节点有多个子节点)。尝试保存
OuterXml
:如果这不是您面临的实际问题,您可能需要发布
myFile.xml
的内容。