我試圖自動化我的亞馬遜訂單處理。目前,我正在使用Amazon Merchant Transport獲取訂單的XML文件,但最終,我希望將帶有Web服務的XML文件直接發送到我的賣家中央帳戶。php亞馬遜xml訂單處理
與亞馬遜訂購信息部分陣列 -
Array
(
...
[37] => Array
(
[tag] => NAME
[type] => complete
[level] => 6
[value] => John Smith
)
...
[39] => Array
(
[tag] => ADDRESSFIELDONE
[type] => complete
[level] => 6
[value] => 100 N MAIN St.
)
...
[41] => Array
(
[tag] => CITY
[type] => complete
[level] => 6
[value] => PLANO
)
...
[43] => Array
(
[tag] => STATEORREGION
[type] => complete
[level] => 6
[value] => TX
)
...
[45] => Array
(
[tag] => POSTALCODE
[type] => complete
[level] => 6
[value] => 75075-1948
)
)
我能找回我的訂單爲XML文檔,可以用下面的代碼解析。
$contents = file_get_contents("amzn-order-sample.xml");
$p = xml_parser_create();
xml_parse_into_struct($p, $contents, $vals, $index);
xml_parser_free($p);
現在我試圖拔出訂單相關的信息 - 首先是一個時間信息(發貨人姓名,地址)
話,我希望能夠得到「有序的項目/數量」信息,這可能是這個客戶的1->很多項目。
,我已經工作示例代碼 - 檢索值(我將投入到另一個陣列進行進一步處理)(很醜)
$arrIt = new RecursiveIteratorIterator(new RecursiveArrayIterator($vals));
// shipper name
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'NAME') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper Name\n";
print_r($outputArray);
}
}
// shipper phone
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'BUYERPHONENUMBER') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper Phone\n";
print_r($outputArray);
}
}
// shipper addresslineone
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'ADDRESSFIELDONE') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper Address\n";
print_r($outputArray);
}
}
// shipper city
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'CITY') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper City\n";
print_r($outputArray);
}
}
// shipper state
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'STATEORREGION') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper State\n";
print_r($outputArray);
}
}
// shipper zip
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'POSTALCODE') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper Zip\n";
print_r($outputArray);
}
}
// items
foreach ($arrIt as $sub) {
$subArray = $arrIt->getSubIterator();
if ($subArray['tag'] === 'POSTALCODE') {
$outputArray[] = iterator_to_array($subArray);
echo "Shipper Zip\n";
print_r($outputArray);
}
}
我要分析每1-許多項目與上面的代碼一起循環排序,但必須有更好,更乾淨的方式.. - 也許有人有他們可以提供的代碼片段。
在此先感謝您的任何想法..
一個新手到PHP
一定有很多更好的方法可以做到這類型的代碼中使用XML和PHP(這將在Linux服務器上進行處理) - 任何建議或其他想法都非常受歡迎
有人可以包裹他的代碼嗎? – quantumSoup 2010-07-17 01:06:02
格式化固定。 – 2010-07-17 01:11:04
這麼多的代碼,很少格式化。 @newbiephper請使用格式選項引用此代碼,以便它清晰易讀。謝謝@Thomas Owens – 2010-07-17 01:11:31