fwh*_*who 9 php xml amazon-mws
数据:
<Relationships>
<ns2:VariationChild>
<Identifiers>
<MarketplaceASIN>
<MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
<ASIN>B002KT3XQC</ASIN>
</MarketplaceASIN>
</Identifiers>
<ns2:Color>Black</ns2:Color>
<ns2:Size>Small</ns2:Size>
</ns2:VariationChild>
<ns2:VariationChild>
<Identifiers>
<MarketplaceASIN>
<MarketplaceId>ATVPDKIKX0DER</MarketplaceId>
<ASIN>B002KT3XQW</ASIN>
</MarketplaceASIN>
</Identifiers>
<ns2:Color>Black</ns2:Color>
<ns2:Size>Medium</ns2:Size>
</ns2:VariationChild>
</Relationships>
Run Code Online (Sandbox Code Playgroud)
代码:
$data = simplexml_load_string($response);
foreach($data->GetMatchingProductResult AS $GetMatchingProductResult){
$Product = $GetMatchingProductResult->Product;
$Relationships = $Product->Relationships;
foreach($Relationships->children('ns2', true)->VariationChild AS $VariationChild){
$Identifiers = $VariationChild->Identifiers;
$MarketplaceASIN = $Identifiers->MarketplaceASIN;
$MarketplaceId = $MarketplaceASIN->MarketplaceId;
$ASIN = $MarketplaceASIN->ASIN;
echo "$ASIN<br />";
}
}
Run Code Online (Sandbox Code Playgroud)
这回复了回归,但没有数据,所以它实际上循环遍历XML.但是,我尝试的任何内容都不会实际返回$ ASIN变量中的数据.这是因为命名空间还是simpleXML,还是我完全错过了其他东西?
编辑:尝试过其他方法
foreach($Relationships->children('http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd', true)->VariationChild AS $VariationChild){
$Identifiers = $VariationChild->Identifiers;
$MarketplaceASIN = $Identifiers->MarketplaceASIN;
$MarketplaceId = $MarketplaceASIN->MarketplaceId;
$ASIN = $MarketplaceASIN->ASIN;
echo "[$ASIN]<br />";
}
$test = new SimpleXMLElement($response);
$test->registerXPathNamespace('ns2', 'http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd');
$variations = $test->xpath('//ns2:VariationChild');
foreach($variations AS $vars){
print_r($vars);
}
Run Code Online (Sandbox Code Playgroud)
似乎都没有循环数据.
以下代码获取ASIN字符串:
$data = simplexml_load_string($response);
foreach ($data->GetMatchingProductResult as $GetMatchingProductResult) {
$Product = $GetMatchingProductResult->Product;
$Relationships = $Product->Relationships;
foreach ($Relationships->children('ns2', true)->VariationChild
as $VariationChild)
{
foreach ($VariationChild->children('', true) as $var_child) {
echo $var_child->MarketplaceASIN->ASIN, PHP_EOL;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |