当前位置: 首页 > 编程语言 > C#

AmazonMarketplaceXMLParsingwithLINQ分享

时间:2023-04-11 00:26:04 C#

AmazonMarketplaceXMLParsingwithLINQ我有一系列来自亚马逊的复杂XML文件显示订单报告。XML片段如下:000-1111111-2222222111-3333333-44444442012-03-02T13:28:53+00:002012-03-02T13:29:05+00:00PendingAmazon.comhttp://http:///万维网。amazon.comAmazonStandardBeverlyHillsCA90210-1234USAmazonASINInternal-SKUPendingThisisthenameoftheproduct1Principal19.99我需要对这个文件做的是提取部分XML文档,然后执行一些操作数据。我遇到的问题是多个订单项。下面的代码将正确获取每个节点并将其放入列表项中,但我不确定如何在C#中将这些多个项与相同的订单号相关联。C#片段:ListgetNodes(stringpath,stringnodeName){Listnodes=newList();XDocumentxmlDoc=XDocument.Load(路径);//创建XML文档类型foreach(varelinxmlDoc.Descendants(nodeName)){//用于调试//nodes.Add(el.Name+""+el.Value);//对于生产节点。Add(el.Value);}返回节点;}//endgetNodes调用方法:ListskuNodes=xml.getNodes(@"AmazonSalesOrders.xml","SKU");其中xml是实例化的类。进一步解释复杂性:如果将每个节点放入自己的列表中,则只需订购一项,列表的长度将保持不变。一旦下单多件商品,SKU、数量、价格等列表会变长,不易循环。我确信有一个LINQtoXML语句可以满足我的需要,但我没有足够的C#经验来破解它。++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++我正在尝试在网上找到的一些LINQ建议。以下看起来很有希望,但返回异常:base{System.SystemException}={"Objectreferencenotsettoaninstanceofanobject."}代码是:varquery=fromxEleinxmlDoc.Descendants(node)wherexEle.Element("AmazonOrderID").Value.ToString()==primaryKeyselectnew{tag=xEle.Name.LocalName,value=xEle.Value};我不确定为什么会这样,节点和主键的变量正在运行时传输。如果我设置一个断点,我可以看到primaryKey被正确传递,与节点相同;但是当我到达:DictionaryordersByID=newDictionary();foreach(varCurNodeinquery){ordersByID.Add(CurNode.tag,CurNode.value);解析CurNode时出现空引用错误。您可以按照您的想法使用linq实现此目的,如果itemprice等需要添加更多元素,这样的事情应该可以工作。XNamespacens="w3.org/2001/XMLSchema-instance";varquery=fromorderinxmlDoc.Descendants(ns+"Order")fromorderIteminorder.Elements(ns+"OrderItem")selectnew{amazonOrdeID=order.Element(ns+"AmazonOrderID").Value,merchantOrderID=order.Element(ns+"MerchantOrderID").Value,orderStatus=order.Element(ns+"OrderStatus").Value,asin=orderItem.Element(ns+"ASIN").Value,quantity=orderItem.Element(ns+“数量”)。价值};使用上面的方法,您可以在一行中返回每个亚马逊订单所需的所有信息...我们决定使用另一种方法,所以我没有机会完全测试该解决方案,我将其标记为由于方向的改变而完成。以上就是C#学习教程:AmazonMarketplaceXMLparsingandsharingusingLINQ。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: