0

POS システムからオンライン ストアに商品をロードする XML インポーターを作成しようとしています。

POS システムから XML エクスポートを取得し、それを処理して、データベースの複数のテーブルに値を直接入力することで、これに取り組みたいと考えています。

コードの冒頭はこのように見えますが、私はすでにつまずきに遭遇しました。

<?php
    $xml = simplexml_load_file('product.xml');

$ProductName            = $xml->Product->Name;
$ProductDescription     = $xml->Product->Description;
$IsNew = str_replace("false", "0", $xml->Product->IsNew) // Sets False to 0 instead of false

echo $ProductName . "<br />";
echo $ProductDescription . "<br />";
echo $IsNew;
?>

これまでのところ、XML タグからデータを取得し、それらを変数に入れ、エコーすることで、正しい結果が得られるようにしています。

これは、XML ファイルの最初の製品の詳細のみを返しています (1,000 以上から)。すべての製品の Name+Description+IsNew を取得することを期待していました。while ステートメントに含める必要があると想定していますが、simple_xml でこれを適用する方法がわかりません

XML 構造は次のようになります。

<PRODUCTS>
      <PRODUCT>
              <UPDATETYPE>
              <STYLECODE>
              <NAME>
              <DESCRIPTION>
              ...etc...
              <ITEMS>
                    <ITEM>
                         <CODE>
                         <BARCODE>
                         <SIZE>
                         <PRICE>
                         ...etc...
                    </ITEM>
                    <ITEM>
                    ...etc...
                    </ITEM>
              </ITEMS>
     </PRODUCT>
     <PRODUCT>
     ...etc...
     </PRODUCT>
</PRODUCTS>
4

1 に答える 1

1

Product配列としてトラバースする必要があります。

foreach($xml->Product as $_product){
  echo $_product->Name . "<br/>";
  echo $_product->Description . "<br/>";
  echo $_product->IsNew ? "true" : "false";
}
于 2012-04-27T03:43:50.387 に答える