Я пытаюсь определить, почему я не могу получить значение узла в моем XML-файле. Я использую следующий 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('test.xml'); // start reading the XML File. while($reader->read()) { // take action based on the kind of node returned switch($reader->nodeType) { // read more http://uk.php.net/manual/en/class.xmlreader.php#xmlreader.constants.element case (XMLREADER::ELEMENT): // get the name of the node. $node_name = $reader->name; // move the pointer to read the next item $reader->read(); // action based on the $node_name if ($node_name == 'PartNumber') { $reader->read(); $data['PartNumber'] = $reader->value; var_dump($data); }; break; case (XMLREADER::END_ELEMENT): // do something based on when the element closes. break; } } ?>
Ниже приведен пример моих XML-данных …
<Items> <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> </Items>
Var_dump из $ data показывает следующее …
array (1) {["PartNumber"] => string (0) ""}
Сообщения об ошибках отсутствуют.
Может кто-нибудь указать мне в сторону того, что мне не хватает?