我成功地使用了php的simplexml_load_file和几个API调用。我目前正在使用它加载以下eBay API调用的内容,该调用以XML输出响应:http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByCategory&version=1.4.0&GLOBAL-ID=EBAY-US&SECURITY-APPNAME=ArcaneSt-AwesomeS-PRD-e99eeebc0-6908031c&RESPONSE-DATA-FORMAT=XML&sortOrder=BestMatch&categoryId=46304&affliate.networkId=9&affliate.trackingId=5337921693&affliate.customId=awesomeswords
当我通过simplexml_load_file运行时,所有数据都存在且正确,但最后的右括号缺失,导致属性调用仅返回数组中的第一个结果。
为了更加清晰,您最终会得到以下结论:
SimpleXMLElement对象([ack] =>成功[版本] => 1.13.0 [时间戳] => 2016-08-30T20:39:39.934Z [searchResult] => SimpleXMLElement对象([@attributes ] =>数组([count] => 100)[item] =>数组([0] => SimpleXMLElement对象([itemId] => 123 [primaryCategory] => SimpleXMLElement对象([categoryId] => 123456)[1] ....))
正如您所见,我只有2个右括号包装项目列表,但每个(1)顶级对象有3个左括号,(2)其searchResult对象,(3)sR' s item属性,包含项目对象数组。
我可以调用对象和object-> searchResult,因为在每个级别都有一个右括号。但是,当我进入第3级时,对于object-> searchResult-> Item,我只能看到其数组中第1项的数据然后结束。 Foreach循环也只返回第一个结果。
我可以确认var_dump,print_r以及将XML内容放到我本地的xml文件中,都表示没有右括号。
关于我如何解决这个问题的任何想法,或者是否有简单地将输出连接/附加到")的解决方案"让这个工作?我不希望将输出存储在XML文件中,然后写入,以便在可能的情况下重新读取它。