使用DOMDocument和foreach将标记特定的XML数据提取到数组中

时间:2018-10-02 13:32:46

标签: php arrays xml foreach domdocument

我正在尝试从XML文档中提取数据并使用它创建一个数组。我正在使用DOMdocumentforeach循环来提取所需的数据。我需要的数据在<description>标记内; 但是我只希望在<description>之前的<header id="1236">MECHANICAL</header>数据。请注意,其他<description>数据之前是标记<header id="1176">EXTERIOR</header>和{{1} },我不需要这些数据。

以下是XML的预览以及XML的结构:

<header id="1220">INTERIOR</header>

使用以下PHP,我能够从XML文档中提取所有<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <VehicleDescription country="US" language="en" modelYear="2015" bestMakeName="Audi" bestModelName="A4" bestStyleName="4dr Sdn Auto quattro 2.0T Premium" bestTrimName="Premium" xmlns="urn:description7b.services.chrome.com"> <standard> <header id="1236">MECHANICAL</header> <description>Engine: 2.0L DOHC 4-Cylinder TFSI -inc: Audi valvelift system</description> <category id="1048"/> <category id="1054"/> <category id="1213"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Transmission: 8-Speed Automatic w/Tiptronic -inc: sport program and manual shift mode</description> <category id="1130"/> <category id="1195"/> <category id="1220"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Full-Time All-Wheel Drive</description> <category id="1041"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Engine Oil Cooler</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>80-Amp/Hr Maintenance-Free Battery w/Run Down Protection</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>150 Amp Alternator</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Gas-Pressurized Shock Absorbers</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Front And Rear Anti-Roll Bars</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Electric Power-Assist Speed-Sensing Steering</description> <category id="1084"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>16.1 Gal. Fuel Tank</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Single Stainless Steel Exhaust</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Multi-Link Front Suspension w/Coil Springs</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>Multi-Link Rear Suspension w/Coil Springs</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1236">MECHANICAL</header> <description>4-Wheel Disc Brakes w/4-Wheel ABS, Front Vented Discs, Brake Assist, Hill Hold Control and Electric Parking Brake</description> <category id="1018"/> <category id="1020"/> <category id="1228"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Wheels: 8.0J x 17" 10-Spoke-Star-Design</description> <category id="1123"/> <styleId>369101</styleId> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Tires: P245/45R17 AS</description> <category id="1092"/> <category id="1097"/> <styleId>369101</styleId> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Wheels w/Silver Accents</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Steel Spare Wheel</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Compact Spare Tire Mounted Inside Under Cargo</description> <category id="1098"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Clearcoat Paint</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Express Open/Close Sliding And Tilting Glass 1st Row Sunroof w/Sunshade</description> <category id="1069"/> <category id="1132"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Body-Colored Front Bumper</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Body-Colored Rear Bumper</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Rocker Panel Extensions</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Aluminum Side Windows Trim and Black Front Windshield Trim</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Body-Colored Door Handles</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Body-Colored Power Heated Side Mirrors w/Manual Folding and Turn Signal Indicator</description> <category id="1064"/> <category id="1065"/> <category id="1174"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Fixed Rear Window w/Defroster</description> <category id="1034"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Light Tinted Glass</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Speed Sensitive Rain Detecting Variable Intermittent Wipers w/Heated Jets</description> <category id="1127"/> <category id="1159"/> <category id="1160"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Galvanized Steel/Aluminum Panels</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Black Grille w/Chrome Surround</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Trunk Rear Cargo Access</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Programmable Projector Beam High Intensity Low/High Beam Daytime Running Auto-Leveling Headlamps w/Washer and Delay-Off</description> <category id="1061"/> <category id="1168"/> <category id="1169"/> <category id="1313"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Front And Rear Fog Lamps</description> <category id="1151"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Cornering Lights</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>Perimeter/Approach Lights</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1176">EXTERIOR</header> <description>LED Brakelights</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="10689">ENTERTAINMENT</header> <description>Radio: Audi Concert System w/1CD Player -inc: MP3 capable, AM/FM radio, auxiliary input jack, SD card slots w/32GB capacity for MP3 files, speed-dependent volume control, Audi MMI radio plus system for controlling infotainment/climate/car setup w/6.5" color screen, Audi music interface w/iPod integration w/1 cable for iPod connection, Audi 6-channel DSP extended 180 watt sound system w/10 speakers including subwoofer and SiriusXM satellite radio w/90-day trial subscription</description> <category id="1014"/> <category id="1017"/> <category id="1149"/> <category id="1150"/> <category id="1230"/> <styleId>369101</styleId> </standard> <standard> <header id="10689">ENTERTAINMENT</header> <description>Radio w/Clock and Steering Wheel Controls</description> <category id="1161"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="10689">ENTERTAINMENT</header> <description>Audio Theft Deterrent</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="10689">ENTERTAINMENT</header> <description>Window Grid Diversity Antenna</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="10689">ENTERTAINMENT</header> <description>Bluetooth Wireless Phone Connectivity</description> <category id="1211"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Power Front Seats -inc: 8-way power front seats and 4-way power lumbar adjustment for driver</description> <category id="1074"/> <category id="1075"/> <category id="1082"/> <category id="1189"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Driver Seat</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Passenger Seat</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>60-40 Folding Bench Front Facing Fold Forward Seatback Rear Seat</description> <category id="1076"/> <category id="1304"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Manual Tilt/Telescoping Steering Column</description> <category id="1087"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Gauges -inc: Speedometer, Odometer, Engine Coolant Temp, Tachometer, Oil Level, Trip Odometer and Trip Computer</description> <category id="1203"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Power Rear Windows</description> <category id="1126"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Leather Steering Wheel</description> <category id="1192"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Front Cupholder</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Rear Cupholder</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Front Cigar Lighter(s)</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Ashtray</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Valet Function</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Power Fuel Flap Locking Type</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Remote Keyless Entry w/Integrated Key Transmitter, 4 Door Curb/Courtesy, Illuminated Entry and Panic Button</description> <category id="1062"/> <category id="1063"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Remote Releases -Inc: Power Cargo Access</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>HomeLink Garage Door Transmitter</description> <category id="1204"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Cruise Control</description> <category id="1033"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Dual Zone Front Automatic Air Conditioning</description> <category id="1009"/> <category id="1010"/> <category id="1011"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Rear HVAC w/Separate Controls</description> <category id="1011"/> <category id="1012"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>HVAC -inc: Underseat Ducts and Console Ducts</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Illuminated Locking Glove Box</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Driver Foot Rest</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Interior Trim -inc: Aluminum Instrument Panel Insert, Aluminum Door Panel Insert, Aluminum Console Insert and Aluminum/Metal-Look Interior Accents</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Full Cloth Headliner</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Leatherette Door Trim Insert</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Leather Gear Shift Knob</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Leather Seating Surfaces</description> <category id="1078"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Day-Night Rearview Mirror</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Driver And Passenger Visor Vanity Mirrors w/Driver And Passenger Illumination</description> <category id="1175"/> <category id="1176"/> <category id="1177"/> <category id="1178"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Full Floor Console w/Storage, Mini Overhead Console w/Storage and 3 12V DC Power Outlets</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Front And Rear Map Lights</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Fade-To-Off Interior Lighting</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Full Carpet Floor Covering -inc: Carpet Front And Rear Floor Mats</description> <category id="1055"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Carpet Floor Trim and Carpet Trunk Lid/Rear Cargo Door Trim</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Cargo Space Lights</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>FOB Controls -inc: Trunk/Hatch/Tailgate, Windows and Sunroof/Convertible Roof</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Driver / Passenger And Rear Door Bins</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Power 1st Row Windows w/Front And Rear 1-Touch Up/Down</description> <category id="1126"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Delayed Accessory Power</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Power Door Locks w/Autolock Feature</description> <category id="1063"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Systems Monitor</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Redundant Digital Speedometer</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Trip Computer</description> <category id="1203"/> <styleId>369101</styleId> </standard> <standard> <header id="1220">INTERIOR</header> <description>Outside Temp Gauge</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Analog Display</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Manual Anti-Whiplash Adjustable Front Head Restraints and Manual Adjustable Rear Head Restraints</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Front Center Armrest and Rear Center Armrest w/Storage</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>2 Seatback Storage Pockets</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Perimeter Alarm</description> <category id="1013"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Immobilizer III Engine Immobilizer</description> <category id="1166"/> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>3 12V DC Power Outlets</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> <standard> <header id="1220">INTERIOR</header> <description>Air Filtration</description> <styleId>369101</styleId> <installed cause="BaseEquipment"/> </standard> </VehicleDescription> 数据。但是,我无法确定如何仅提取与description绑定的description数据。我该如何编辑以下代码来实现此目的?

<header id="1236">MECHANICAL</header>

1 个答案:

答案 0 :(得分:2)

您可以使用if条件过滤掉不需要的结果

foreach ($dom->getElementsByTagName('standard') as $standard){
  if ($standard->getElementsByTagName('header')->item(0)->getAttribute('id') == '1236'){
    $mechdescription = $standard->getElementsByTagName('description')->item(0)->nodeValue;
    $mecharray[] = $mechdescription;
  }

}