我希望有人可以帮助我做一件简单的事情,但我有点挣扎。我有一个具有以下结构的 XML 文件...
<Item MaintenanceType="C">
<HazardousMaterialCode>N</HazardousMaterialCode>
<ItemLevelGTIN GTINQualifier="UP">090127000380</ItemLevelGTIN>
<PartNumber>0-1848-1</PartNumber>
<BrandAAIAID>BBVL</BrandAAIAID>
<BrandLabel>Holley</BrandLabel>
<PartTerminologyID>5904</PartTerminologyID>
<Descriptions>
<Description MaintenanceType="C" DescriptionCode="DES" LanguageCode="EN">Street Carburetor</Description>
<Description MaintenanceType="C" DescriptionCode="SHO" LanguageCode="EN">Crb</Description>
</Descriptions>
<Prices>
<Pricing MaintenanceType="C" PriceType="JBR">
<PriceSheetNumber>L30779-13</PriceSheetNumber>
<CurrencyCode>USD</CurrencyCode>
<EffectiveDate>2013-01-01</EffectiveDate>
<Price UOM="PE">462.4600</Price>
</Pricing>
<Pricing MaintenanceType="C" PriceType="RET">
<PriceSheetNumber>L30779-13</PriceSheetNumber>
<CurrencyCode>USD</CurrencyCode>
<EffectiveDate>2013-01-01</EffectiveDate>
<Price UOM="PE">380.5500</Price>
</Pricing>
<Pricing MaintenanceType="C" PriceType="WD1">
<PriceSheetNumber>L30779-13</PriceSheetNumber>
<CurrencyCode>USD</CurrencyCode>
<EffectiveDate>2013-01-01</EffectiveDate>
<Price UOM="PE">314.4700</Price>
</Pricing>
</Prices>
<ExtendedInformation>
<ExtendedProductInformation MaintenanceType="C" EXPICode="CTO" LanguageCode="EN">US</ExtendedProductInformation>
<ExtendedProductInformation MaintenanceType="C" EXPICode="NPC" LanguageCode="EN">A</ExtendedProductInformation>
<ExtendedProductInformation MaintenanceType="C" EXPICode="HTS" LanguageCode="EN">8409914000</ExtendedProductInformation>
<ExtendedProductInformation MaintenanceType="C" EXPICode="NAF" LanguageCode="EN">B</ExtendedProductInformation>
</ExtendedInformation>
<ProductAttributes>
<ProductAttribute MaintenanceType="C" AttributeID="SKU" LanguageCode="EN">BBVL0-1848-1</ProductAttribute>
<ProductAttribute MaintenanceType="C" AttributeID="ModDate" LanguageCode="EN">2012-12-31</ProductAttribute>
</ProductAttributes>
<Packages>
<Package MaintenanceType="C">
<PackageLevelGTIN>00090127000380</PackageLevelGTIN>
<PackageUOM>EA</PackageUOM>
<QuantityofEaches>1</QuantityofEaches>
<Dimensions UOM="IN">
<Height>7.5000</Height>
<Width>11.0000</Width>
<Length>12.2500</Length>
</Dimensions>
<Weights UOM="PG">
<Weight>13.500</Weight>
<DimensionalWeight>6.09</DimensionalWeight>
</Weights>
</Package>
</Packages>
</Item>
我正在使用以下 PHP 代码来解析这个巨大的 XML 文件...
<?php
error_reporting(E_ALL);
ini_set( 'display_errors','1');
libxml_use_internal_errors(true);
libxml_clear_errors();
// create the reader object
$reader = new XMLReader();
// reader the XML file.
$reader->open('/home/hingeweb/www/tintworld/magmi/integration/scripts/worldpak-small.xml');
// Move to the first "[App name]" node in the file.
while ($reader->read() && $reader->name !== "App");
// Now that we're at the right depth, hop to the next "[App name]" until the end of tree/file.
while ($reader->name === "App") {
$node = new SimpleXMLElement($reader->readOuterXML());
// *** Do something of interest with $node, this is the App we have been looking for. ***
// Skip to the next node of interest.
$reader->next("App");
}
//foreach ($data as $key => $value) {
// echo "Key: $key; Value: $value<br />\n";
//}
echo "Finished Processing... \n \n";
?>
我正在尝试将其中一些结果设置为数组。例如,我很想将 $data->PartNumber 放入一个数组中,这样我就可以对结果进行内爆并将其导入 SQL。我不想导入 XML 文件的所有字段,所以我想我必须单独编码这些字段。
是否有人可以为我指出正确的方向来做到这一点?
谢谢!